1. 程式人生 > >文件權限管理

文件權限管理

tro 設置權限 acl mod 顯示文件 sgi 去掉 不能 man

權限除了UGO權限,還有FACL(俗稱acl)權限、3個S權限、文件系統權限。ACL是文件訪問控制列表(file access control list)的縮寫。是用來實現對指定的文件和指定的用戶或組一對一精確授權。FACL權限的優先級高於普通的UGO權限。
查acl權限用getfacl其格式是getfacl 選項 文件名
getfacl /etc/liu
設置權限用setfacl 格式:setfacl 選項 權限 文件名
設置了acl權限,用ls -ld查權限,權限最後一位的.會變成+,則說明此文件有acl權限。
給liu用戶在/q.txt文件上設置acl權限為rwx:setfacl -m u:liu:rwx /q.txt
給wang組在/q.txt文件上設置acl權限為rw:setfacl -m g:sales:rw /q.txt
去掉指定的ACL權限:setfacl -x u:liu /q.txt
去掉/q.txt文件的所有ACL權限:setfacl -b /q.txt
對命令不熟悉的朋友可以man setfacl 查詢幫助。
FACL權限代號:u是用戶,g是組,r可讀,w是可寫,x是可執行。
三個S權限分別是SUID(權限數字是4):讓普通用戶臨時以命令屬主(root)的身份去執行命令。
SGID(權限數字是2):讓普通用戶臨時以目錄屬組的身份去執行命令。SGID權限通常用於目錄,可以實現繼承功能。即目錄中新建的文件的屬組跟目錄的屬組相同。
Sticky bit粘滯位(粘著位,權限數字是1):通常用於做文件共享的目錄,在目錄中每個用戶只能刪除自己的文件,而不能刪除其他人的文件。系統中/tmp目錄默認有Sticky bit權限
useradd a
useradd b
mkdir /s
chmod -v 777 /s
chmod -v o+t /s 給/s目錄添加sticky bit權限
ls -ld /s 會發現權限是rwxrwxrwt,t就是sticky bit權限
su - a
touch /s/a.txt
exit
su - b
touch / s /b.txt
rm -fv /s/a.txt 提示“無法刪除”,因為/tmp目錄有sticky bit權限
exit
chmod -v o-t /s 給/tmp目錄去掉sticky bit權限
su - b
rm -fv /s/a.txt
exit
rm -rfv /s
文件系統權限可以用lsattr查看這種權限,用chattr命令來設置這種權限。文件系統權限的設置可以讓root(超級用戶)也無法進行直接操作。
查:lsattr [選項] 文件名 例如:lsattr /etc/liu
設置:chattr [選項] +-權限 文件名 例如:chattr +i /tmp/a.txt
說明:chattr是change attrib修改屬性的縮寫。
date > /dt.txt
lsattr /dt.txt
chattr +a /dt.txt 給/dt.txt文件添加a權限
rm -fv /dt.txt 提示“不允許的操作”
free -h >> /dt.txt 能正常追加內容
cat /dt.txt
chattr -a /dt.txt 給/dt.txt文件去掉a權限

chattr +i /dt.txt 給/dt.txt文件添加i權限
df -h >> /dt.txt 提示“權限不夠”
rm -fv /dt.txt 提示“不允許的操作”
chattr -i /dt.txt 給/dt.txt文件去掉i權限
rm -fv /dt.txt 正常刪除/dt.txt文件

說明:free -h是顯示系統中已用和未用的內存,-h是人性化顯示容量單位(G、M、K)。
df -h是顯示文件系統磁盤空間的使用情況(disk free),-h是人性化(human)顯示容量單位(G、M、K)。

文件權限管理