CentOS文件系統權限分為三類:所有者權限(Owner)、組權限(Group)、其他用戶權限(Others)。每類權限包含讀(r)、寫(w)、**執行(x)**三種類型,可通過ls -l
命令查看(如-rw-r--r--
表示所有者有讀寫權限,組和其他用戶僅有讀權限)。
修改權限(chmod):
755
=所有者rwx
+組r-x
+其他r-x
;644
=所有者rw-
+組r--
+其他r--
)。chmod 755 /path/to/directory
(設置目錄為所有者可讀寫執行,組和其他用戶可讀執行)。u+x
=給所有者添加執行權限;g-w
=移除組寫權限)。chmod u+w /path/to/file
(給文件所有者添加寫權限)。修改所有者/組(chown/chgrp):
chown
:同時修改所有者和組(如chown user:group /path/to/file
)。chgrp
:僅修改所屬組(如chgrp developers /path/to/file
)。sudo chown $USER:$USER /home/user/docs
(將文件所有者設為當前用戶及其主組)。若需修改目錄及其內部所有文件/子目錄的權限,需添加-R
選項(謹慎使用777
權限,易引發安全風險)。
示例:sudo chmod -R 755 /var/www/html
(設置Web目錄及其內容為所有者可讀寫執行,組和其他用戶可讀執行)。
ACL(訪問控制列表):實現更細粒度的權限控制(如給特定用戶添加權限)。
sudo yum install acl
。setfacl -m u:editor:rwx /path/to/file
(給editor
用戶添加讀寫執行權限);setfacl -R -m u:devs:rwx /team/project
(遞歸設置團隊目錄權限)。SGID(設置組ID):確保目錄內新創建的文件繼承目錄的組權限(適用于團隊協作)。
示例:chmod 2770 /path/to/team_dir
(2
表示SGID位,770
=所有者rwx
+組rwx
+其他---
)。
SELinux是CentOS的安全模塊,可能覆蓋文件權限。若權限設置正確但仍無法訪問,需檢查SELinux狀態:
sestatus
(若顯示Enforcing
,則為啟用狀態)。sudo setenforce 0
(重啟后恢復)。/etc/selinux/config
,將SELINUX=enforcing
改為SELINUX=disabled
(不推薦,影響系統安全)。chcon
命令(如sudo chcon -t httpd_sys_content_t /var/www/html/index.html
)或semanage fcontext
(持久化修改)。若文件系統以只讀方式掛載,即使權限允許也無法修改:
mount | grep /path/to/mount
(若出現ro
,則為只讀)。sudo mount -o remount,rw /path/to/mount
(臨時生效)。/etc/fstab
:編輯文件,移除掛載選項中的ro
(如將defaults,ro
改為defaults,rw
),然后執行mount -a
(永久生效)。getfacl -p -R /path/to/dir > acl.bak
備份,便于恢復。chmod 777
,優先通過chown
/chgrp
和合理權限設置控制訪問。