在 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 中的文件权限。如需进一步帮助,请提供具体场景!