解决方案是使用chmod命令,通过符号模式或八进制数字模式精确设置文件或目录的读写权限,核心在于理解r、w、x权限对应的用户、组和其他人访问控制,八进制模式以4(r)、2(w)、1(x)为基础相加,形成如644、755等常用权限组合,其中目录需特别注意x权限以允许进入,结合find命令可批量修改权限,确保系统安全与访问正常。

在CentOS系统里,要给文件或目录添加读写权限,我们主要依赖
chmod
u+rw
644
755
处理CentOS文件和目录的权限,核心就是
chmod
理解权限基础:
cd
两种修改权限的方式:
符号模式 (Symbolic Mode): 这种方式更直观,你指定要修改的对象(用户、组、其他人或全部),然后指定要添加(
+
-
=
u
g
o
a
+
-
=
r
w
x
示例:
my_script.sh
chmod u+x my_script.sh
my_data
chmod ug+rw my_data
config.txt
chmod u=rw,go=r config.txt
八进制数字模式 (Octal Mode): 这是我个人最常用也最推荐的方式,因为它简洁且能一次性设置所有权限。每个权限都有一个对应的数字值:
r
w
x
rwx
rw-
r-x
r--
权限数字通常由三位组成,分别代表:所有者权限 | 组权限 | 其他人权限。
常见权限数字组合:
755
644
777
示例:
report.doc
chmod 644 report.doc
projects
chmod 755 projects
run.sh
chmod 755 run.sh
关于目录权限的额外提示:
x
x
cd
755
644
在我们处理CentOS(或者说任何Linux系统)的文件权限时,八进制模式简直是效率的代名词。它把复杂的权限规则,浓缩成了几个简单的数字,一下子就能看明白。
在我看来,掌握八进制模式是玩转Linux权限的敲门砖。它的核心思想是,把读(r)、写(w)、执行(x)这三种权限,分别赋予一个特定的数值:
如果你想赋予一个权限组合,比如读和写,那就把它们对应的数值加起来:
然后,这三个权限数字会分别对应文件或目录的三个权限组:
所以,当你看到一个权限数字,比如
755
7
rwx
5
r-x
5
r-x
所以,
chmod 755 my_directory
my_directory
再比如
chmod 644 my_file.txt
6
4
4
这种方式的好处在于,它非常紧凑,一眼就能看出所有权限的分配情况。在编写脚本或者进行批量操作时,使用八进制模式能大大提高效率和准确性。当然,理解了这些数字背后的含义,你才能真正灵活地运用它们。
很多时候,我们可能会遇到这样的情况:明明给文件设置了
644
777
文件权限和目录权限虽然都用
rwx
r
ls
w
x
x
cd
x
r
ls
cd
常见的权限问题及原因:
无法进入目录: 目录没有
x
644
rw-r--r--
ls
cd
x
chmod +x my_directory
chmod 755 my_directory
无法访问目录内的文件,即使文件权限已放开:
x
x
755
无法在目录中创建/删除文件: 目录没有
w
chmod +w my_directory
chmod 775 my_directory
除了chmod
chown
chgrp
chmod
denied
semanage
restorecon
noexec
所以在排查权限问题时,我通常会从目标文件开始,向上检查其所有父目录的权限,并确保
chown
chgrp
在实际的系统管理中,我们经常会遇到需要批量修改文件或目录权限的场景。比如,你部署了一个新的Web应用,或者从备份恢复了一堆文件,这些文件的权限可能一团糟,手动一个个改显然是不现实的。这时候,
find
chmod
我个人在使用这套组合时,总是会先用
find
exec
exec
chmod
基本语法:
find <路径> -type <f/d> -name "<模式>" -exec chmod <权限> {} \;<路径>
-type <f/d>
f
d
-name "<模式>"
"*.sh"
.sh
-exec <命令> {} \;find
{}\;
常见批量修改场景:
给所有脚本文件添加执行权限: 假设你有一个项目目录
my_project
.sh
# 先预览一下哪些文件会被修改
find my_project -type f -name "*.sh"
# 确认无误后,执行修改
find my_project -type f -name "*.sh" -exec chmod +x {} \;这里我用了
+x
统一设置所有普通文件的权限: 通常,普通文件我们希望所有者可读写,其他人只读(
644
# 预览
find my_project -type f
# 执行修改
find my_project -type f -exec chmod 644 {} \;统一设置所有目录的权限: 对于目录,我们通常希望所有者可读写执行,其他人可读可执行(
755
# 预览
find my_project -type d
# 执行修改
find my_project -type d -exec chmod 755 {} \;这里需要注意,
find
更高级的用法:
排除特定目录或文件: 如果你想排除
my_project/cache
find my_project -path "my_project/cache" -prune -o -type f -exec chmod 644 {} \;-prune
find
my_project/cache
结合逻辑操作符: 例如,找到所有者是
root
find /var/log -user root -size +1M -type f -exec chmod 600 {} \;注意事项:
-exec chmod
-exec
find
777
chown
chgrp
find -exec chown ...
find -exec chgrp ...
通过
find
chmod
以上就是CentOS怎么加读写权限_CentOS文件与目录权限修改命令教程的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号