一、許可權概述
在Linux中,所有文件和目錄都有一定的許可權信息,包括三個方面:所有者、群組和其他人。許可權用三個八進位位表示,分別代表讀、寫、執行。如果一個文件的許可權為744,代表所有者對該文件有讀、寫、執行許可權,群組和其他人只有讀的許可權。
另外,Linux還有特殊的許可權,如SUID、SGID、sticky bit等。SUID代表設置許可權,使用特殊程序時可以讓程序以擁有文件所有者的許可權運行。SGID代表設置組ID,使用特殊程序時可以讓程序以擁有文件所屬組的許可權運行。sticky bit則用於目錄上,可以防止用戶誤刪其他人的文件。
許可權信息可以通過ls命令查看,格式如下:
$ ls -l filename -rw-r--r-- 1 owner group 0 Jan 1 00:00 filename
其中,第一列就是許可權信息。
二、修改許可權
在Linux中,可以使用chown和chmod命令修改文件或目錄的所有者、群組和許可權信息。
1. chown命令
chown命令用於修改文件或目錄的所有者和群組。其用法為:
$ chown [options] [用戶:組] 文件名
選項說明:
- -R:遞歸修改文件夾下所有子文件和子文件夾
- –from:指定原有的用戶和組
- –reference:從參考文件中複製許可權信息
例如:
$ chown user:group file.txt $ chown -R user:group directory/ $ chown --from=olduser:oldgroup newuser:newgroup file.txt $ chown --reference=ref_file file.txt
2. chmod命令
chmod命令用於修改文件或目錄的許可權。其用法為:
$ chmod [options] [mode] 文件名
選項說明:
- -R:遞歸修改文件夾下所有子文件和子文件夾
mode參數可以用數字方式和符號方式表示:
- 數字方式:0-7分別代表無許可權、執行許可權、寫許可權、寫執行許可權、讀許可權、讀執行許可權、讀寫許可權、讀寫執行許可權。例如,chmod 755 file.txt 表示給文件file.txt賦予所有者讀寫執行許可權,組用戶和其他用戶讀執行許可權。
- 符號方式:用u、g、o和a分別代表用戶、群組、其他用戶和全部用戶,+、-和=分別表示添加、刪除和設置。例如,chmod u+x file.txt 表示給文件file.txt 的所有者添加執行許可權。
例如:
$ chmod 777 file.txt $ chmod u+x file.txt $ chmod g-w-o-r file.txt $ chmod +x file.txt $ chmod -R 644 directory/
三、ACL許可權
在Linux中,還可以使用ACL(Access Control List)許可權控制方式。ACL許可權可以對單個文件或目錄設置細粒度的許可權控制。
ACL許可權可以使用setfacl和getfacl命令進行操作。
1. setfacl命令
setfacl命令用於設置ACL許可權。其用法為:
$ setfacl [options] [用戶/組:許可權] 文件名
選項說明:
- -m:添加ACL許可權
- -x:刪除ACL許可權
- -b:刪除所有用戶的ACL許可權
- -R:遞歸修改文件夾下所有子文件和子文件夾
例如:
$ setfacl -m u:user1:rwx file.txt $ setfacl -m g:group1:r-x directory/ $ setfacl -x u:user1 file.txt $ setfacl -b file.txt $ setfacl -R -m u:user1:rwx directory/
2. getfacl命令
getfacl命令用於查看ACL許可權。其用法為:
$ getfacl [選項] 文件名
選項說明:
- -R:遞歸查看所有子文件夾和子文件
例如:
$ getfacl file.txt $ getfacl -R directory/
四、總結
Linux下的許可權管理是非常重要的,通過對文件和目錄的許可權控制可以保護系統安全和數據隱私。許可權信息可以使用ls命令查看,可以使用chown和chmod命令修改。另外,ACL許可權還可以對單個文件或目錄設置細粒度的許可權控制。
原創文章,作者:WWPD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147263.html