Linux文件目錄權限管理
一、Linux文件屬性及權限
1、Linux文件及目錄權限及屬性說明
(1)權限及屬性說明
(2)文件權限說明
???
三種權限說明:r 讀? read
?? ?????????? ??? w 寫? write
?? ?????????? ?? ?x 執行 excute
2、修改文件屬主及屬組
(1)利用chown修改文件的屬主及屬組
??? ?用法:
?chown 用戶名 dayi123 修改文件的屬主
?????? chown 用戶名:組名 dayi123? 修改文件的屬主和屬組
?????? chown 用戶名.組名 dayi123 ?修改文件的屬主和屬組
?????? chown?????? .組名 dayi123? 修改文件的屬組
?????? chown?????? :組名 dayi123? 修改文件的屬組
???? 參數:-R 用戶名:組名 目錄 遞歸修改目錄的權限以及目錄下所有的文件的權限
??? ?例:修改文件dayi123的屬主為test,屬組為dayi123
?????? ? chown test:dayi123 dayi123
(2)使用chgrp修改文件的屬組
? ? ?例:修改文件dayi123的屬組為test
? ? ? ? ? chgrp test dayi123
3、修改文件及目錄的權限
(1)文件與目錄的權限說明
??? 1)文件權限:
? ?r去看文件里面內容的權限
?? w 可以修改文件的內容
?? x 二進制程序以及腳本需要發起系統調用 去運行一個結果2)目錄權限:
2)目錄權限
?? r 是否可以查看目錄里面的內容? 有r權限的話 可以使用ls -l
?? w 在目錄里面是否可以創建文件或者目錄和是否可以刪除文件或者目錄
?? x 進入目錄權限
(2)、改變文件或目錄的權限:
??? 1)用法:chown [參數] 權限 文件或目錄
? ? ? ? 常用參數:-R:遞歸處理,將指定目錄下的所有文件及子目錄一并處理;
??? 2)利用數字的形式改變文件權限:
?????? 三種權限所代表的的數字分別為:r:4 w:2 x:1
??? ??? 修改方法為:chmod xxx(分別代表三種權限值) 文件名稱或者目錄名稱
?????? 例:修改文件dayi123的權限為rwxr-xr-x
????????????? chmod 755 dayi123
?????? 例:修改文件dayi123的權限為rwx------
????????????? chmod 700 dayi123
??? 3)用符號改變文件權限
?????? 符號類型改變文件權限,執行格式:
命令 | 用戶 | 改變權限符號 | 權限 | ? |
? chmod | u(屬主) | + - = | r w x | ? 文件或目錄 |
g (屬組) | ||||
o(其他人) | ||||
a(所有人) |
?????? 例:設置文件dayi123.txt權限為rwxrwxrwx
????????????? ?chmod a=rwx dayi123.txt
?????? 例:將文件dayi123.txt權限設置為rwxr-xr-x
????????????? ?chmod g-w,o-w dayi123.txt
?????? 例:將文件install.log權限設置為rwxr-xr—
????????????? ?chmod a=rwx,g=rx,o=r install.log
?????? 例:去掉文件install.log屬組的執行權限及其他人的讀權限
????????????? ?chmod g-x,a-r install.log
(3)文件權限掩碼umask
1)作用:設置限制新建文件權限的掩碼。當新文件被創建時,其最初的權限由文件創建掩碼決定。
2)用法: umask? 查看系統默認的掩碼
???????? umask? 以字符的形式顯示當前系統的掩碼
???????? umask u=, g=w, o=rwx? 設置掩碼為027(與實際權限相反)臨時生效,若需要永久生效需要修改配置文件/etc/bashrc 文件(全局生效) ~/.bashrc (僅對當前用戶生效)
二、Linux文件系統的特殊權限SUID、SGID、SBIT
1、SUID權限
(1)功能:
??? 1)只有可執行的二進制程序才能設定SUID權限
??? 2)命令執行者要對該程序擁有x(執行)的權限
??? 3)命令執行者在執行該程序時獲得該程序文件屬主的身份
??? 4)setuid權限只在該程序執行的過程中有效
(2)系統中常見的suid權限
??? 1)passwd命令擁有suid權限,所以普通用戶可以修改自己的密碼
??? 2)cat命令沒有suid權限,所以普通用戶不能查看/etc/passed文件
(3)SETUID權限的設定與取消
??? 1)給文件設定SUID權限(4代表SUID)
? chmod 4755 dayi123.txt
? chmod u+s dayi123.txt
??? 2) 取消SUID全新啊
? chmod 755 dayi123.txt
? chmod u-s dayi123.txt
2、SGID權限
?(1)功能:
??? 1)只有可執行的二進制程序才能設置SGID權限
??? 2)命令執行者要對改程序擁有x(執行)的權限
??? 3)命令執行者在執行程序的時候,組身份升級為該程序文件的屬組
??? 4)SETGID權限只能在該程序執行過程中有效
(2)對目錄的作用:
??? 1)普通用戶對此目錄擁有r和x權限,才能進入此目錄
??? 2)普通用戶在此目錄中的有效組會變成此目錄的屬組
??? 3)若普通用戶對此目錄擁有w權限時,新建的文件的默認屬組時這個屬組
(3)設定與取消SetGid
??? 1)設定sgid:
? chmod 2755 dayi123
? chmod g+s dayi123
??? 2)取消sgid
? chmod 755 dayi123
? chmod g-s dayi123
3、黏滯位sticky
(1)黏滯位的作用:
??? 1)黏滯位只對目錄有效
??? 2)目錄賦予了黏滯位, root可以刪除所有文件,普通用戶只能刪除自己建立的文件,不能刪除其他用戶建立的文件
(2)設置與取消黏滯位
??? 1)設置黏滯位:
?????? Chmod 1755 dayi123(目錄名)
?????? Chmod o+t dayi123(目錄名)
??? 2)取消黏滯位
?????? Chmod 755 dayi123(目錄名)
?????? Chmod o-t dayi123(目錄名)
三、文件的ACL權限
1、ACL 作用
2、查看與設定ACL權限
(1)查看acl權限
??? ? Getfacl 文件名
???? 例如:查看/data/Operation目錄acl權限
[root@localhost data]# getfacl /data/Operation/
getfacl: Removing leading '/' from absolute path names
# file: data/Operation/
# owner: root
# group: root
user::rwx
user:Test:r--
user:Program:r--
user:Operation:r--
group::r-x
mask::r-x
other::r-x
(2)設定ACL權限
??? 1)語法 setfacl [參數] 文件名
??? 2)參數:-m 設定acl權限
?????????? ? -x 刪除指定的acl權限
?????????? ? -b 刪除所有的acl權限
?????????? ? -d 設定默認的aclq權限
?????????? ? -k 刪除默認的acl權限
??? ?????? ? -R 遞歸設定acl權限
??? 3)給用戶設定acl權限
setfacl –m u: setfacl -m u:Operation:r /data/Operation/
??? 4)給用戶組設定acl權限
setfacl –m u: setfacl -m g:dayi123:rwx /data/Operation/
?