在 CentOS(或其他 Linux 系统)中,文件权限管理主要通过 chmod
、chown
和 chgrp
命令实现。以下是详细操作指南:
ls -l 文件名 # 查看具体文件权限
ls -ld 目录名 # 查看目录本身权限(而非内容)
ls -la # 查看当前目录所有文件(含隐藏文件)权限
输出示例:
-rw-r--r-- 1 root root 0 Jan 1 10:00 file.txt
-rw-r--r--
分为三部分:
-
表示文件类型(-
=文件,d
=目录,l
=链接)。rw-
:所有者(user)权限(读+写)。r--
:所属组(group)权限(只读)。r--
:其他用户(others)权限(只读)。chmod
)chmod u=rwx,g=rx,o=r 文件名 # 设置精确权限(u=用户,g=组,o=其他)
chmod u+x 文件名 # 给用户添加执行权限
chmod g-w 文件名 # 移除组的写权限
chmod o=--- 文件名 # 移除其他用户所有权限
chmod -R 755 目录名 # 递归修改目录及其内容权限
常用组合:
- 755
:用户读写执行,组和其他读执行(适合可执行文件/目录)。
- 644
:用户读写,组和其他只读(适合普通文件)。
权限对应数字:
- r
(读) = 4
- w
(写) = 2
- x
(执行) = 1
- -
(无权限) = 0
chmod 755 文件名 # 等价于 u=rwx,g=rx,o=rx
chmod 600 文件名 # 仅用户可读写
chown
)chown 用户名 文件名 # 修改文件所有者
chown 用户名:组名 文件名 # 同时修改所有者和组
chown -R 用户名:组名 目录名 # 递归修改目录及内容
示例:
chown root:admin /data # 所有者改为root,组改为admin
chgrp
)chgrp 组名 文件名 # 修改文件所属组
chgrp -R 组名 目录名 # 递归修改目录及内容
bash
chmod u+s 文件 # 设置SUID(如 /usr/bin/passwd)
bash
chmod g+s 目录 # 目录内新建文件继承父目录组
bash
chmod +t 目录 # 如 /tmp 目录
umask
)bash
umask 022 # 默认权限=777-022=755(目录)或666-022=644(文件)
umask # 查看当前umask值
-R
参数时需谨慎,避免误改大量文件。/etc
、/bin
等系统目录权限。x
(执行)权限,即使有 r
权限也无法查看内容。通过以上命令,您可以灵活管理 CentOS 中的文件权限。如需进一步帮助,请提供具体场景!