首页 > 运维 > CentOS > 正文

CentOS怎么加读写权限_CentOS文件与目录权限修改命令教程

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

centos怎么加读写权限_centos文件与目录权限修改命令教程

在CentOS系统里,要给文件或目录添加读写权限,我们主要依赖

chmod
登录后复制
这个命令。说白了,就是通过它来告诉系统,谁能对这个文件或目录进行读、写、执行操作。最直接的方法,你可以用符号模式(比如
u+rw
登录后复制
给用户添加读写),或者更常用、也更精确的八进制数字模式(比如
644
登录后复制
或者
755
登录后复制
)。

解决方案

处理CentOS文件和目录的权限,核心就是

chmod
登录后复制
命令。它允许你精细地控制用户、用户组以及其他用户对文件或目录的访问权限。

理解权限基础:

  • 读 (r - Read): 允许查看文件内容或列出目录内容。
  • 写 (w - Write): 允许修改文件内容、删除文件,或在目录中创建/删除文件。
  • 执行 (x - Execute): 对文件而言,意味着可以运行它;对目录而言,意味着可以进入该目录(
    cd
    登录后复制
    )并访问其子项。

两种修改权限的方式:

  1. 符号模式 (Symbolic Mode): 这种方式更直观,你指定要修改的对象(用户、组、其他人或全部),然后指定要添加(

    +
    登录后复制
    )、移除(
    -
    登录后复制
    )或设置(
    =
    登录后复制
    )的权限。

    • 对象:
      • u
        登录后复制
        (user): 文件所有者
      • g
        登录后复制
        (group): 文件所属组
      • o
        登录后复制
        (others): 其他用户
      • a
        登录后复制
        (all): 所有用户 (u, g, o)
    • 操作符:
      • +
        登录后复制
        : 添加权限
      • -
        登录后复制
        : 移除权限
      • =
        登录后复制
        : 精确设置权限(会覆盖原有权限)
    • 权限:
      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
      登录后复制
  2. 八进制数字模式 (Octal Mode): 这是我个人最常用也最推荐的方式,因为它简洁且能一次性设置所有权限。每个权限都有一个对应的数字值:

    • r
      登录后复制
      (读) = 4
    • w
      登录后复制
      (写) = 2
    • x
      登录后复制
      (执行) = 1 将这些数字相加,就能得到一个权限组合的数字。
    • rwx
      登录后复制
      (读写执行) = 4 + 2 + 1 = 7
    • rw-
      登录后复制
      (读写) = 4 + 2 + 0 = 6
    • r-x
      登录后复制
      (读执行) = 4 + 0 + 1 = 5
    • r--
      登录后复制
      (只读) = 4 + 0 + 0 = 4

    权限数字通常由三位组成,分别代表:所有者权限 | 组权限 | 其他人权限

    常见权限数字组合:

    • 755
      登录后复制
      (rwxr-xr-x):
      所有者读写执行,组和其他人只读执行。这是目录的常见权限,允许进入目录并查看内容,但只有所有者能修改。
    • 644
      登录后复制
      (rw-r--r--):
      所有者读写,组和其他人只读。这是文件的常见权限,允许所有者修改文件,其他人只能查看。
    • 777
      登录后复制
      (rwxrwxrwx):
      所有用户都可读写执行。这个权限通常用于测试,或者在某些特殊情况下,但生产环境应尽量避免,因为它存在安全风险。

    示例:

    • 将文件
      report.doc
      登录后复制
      设置为所有者读写,组和其他人只读:
      chmod 644 report.doc
      登录后复制
    • 将目录
      projects
      登录后复制
      设置为所有者读写执行,组和其他人只读执行:
      chmod 755 projects
      登录后复制
    • 如果你想给一个脚本文件
      run.sh
      登录后复制
      执行权限,以便它可以被所有用户运行,你可以:
      chmod 755 run.sh
      登录后复制

关于目录权限的额外提示:

  • 目录的
    x
    登录后复制
    权限至关重要。
    如果一个目录没有
    x
    登录后复制
    权限,即使其中的文件有读写权限,你也无法
    cd
    登录后复制
    进入该目录或访问其中的文件。
  • 通常,目录的权限会比文件的权限更高一些,比如
    755
    登录后复制
    对目录,
    644
    登录后复制
    对文件。

理解Linux文件权限的八进制模式

在我们处理CentOS(或者说任何Linux系统)的文件权限时,八进制模式简直是效率的代名词。它把复杂的权限规则,浓缩成了几个简单的数字,一下子就能看明白。

在我看来,掌握八进制模式是玩转Linux权限的敲门砖。它的核心思想是,把读(r)、写(w)、执行(x)这三种权限,分别赋予一个特定的数值:

  • 读 (r) = 4
  • 写 (w) = 2
  • 执行 (x) = 1

如果你想赋予一个权限组合,比如读和写,那就把它们对应的数值加起来:

  • 读写 (rw-) = 4 + 2 = 6
  • 读执行 (r-x) = 4 + 1 = 5
  • 只读 (r--) = 4
  • 只写 (-w-) = 2
  • 只执行 (--x) = 1
  • 读写执行 (rwx) = 4 + 2 + 1 = 7

然后,这三个权限数字会分别对应文件或目录的三个权限组:

  1. 文件所有者 (Owner)
  2. 文件所属组 (Group)
  3. 其他用户 (Others)

所以,当你看到一个权限数字,比如

755
登录后复制
,你就可以这样解读:

  • 第一个
    7
    登录后复制
    :代表文件所有者的权限是
    rwx
    登录后复制
    (4+2+1)。
  • 第二个
    5
    登录后复制
    :代表文件所属组的权限是
    r-x
    登录后复制
    (4+1)。
  • 第三个
    5
    登录后复制
    :代表其他用户的权限是
    r-x
    登录后复制
    (4+1)。

所以,

chmod 755 my_directory
登录后复制
的意思就是,
my_directory
登录后复制
这个目录,它的所有者拥有读、写、执行的全部权限,而这个目录所属的用户组和其他用户则只能读和执行,不能直接修改目录内容。

再比如

chmod 644 my_file.txt
登录后复制

  • 第一个
    6
    登录后复制
    :文件所有者拥有读、写权限。
  • 第二个
    4
    登录后复制
    :文件所属组拥有只读权限。
  • 第三个
    4
    登录后复制
    :其他用户拥有只读权限。

这种方式的好处在于,它非常紧凑,一眼就能看出所有权限的分配情况。在编写脚本或者进行批量操作时,使用八进制模式能大大提高效率和准确性。当然,理解了这些数字背后的含义,你才能真正灵活地运用它们。

CentOS下目录权限与文件权限的区别和影响

很多时候,我们可能会遇到这样的情况:明明给文件设置了

644
登录后复制
或者
777
登录后复制
权限,但就是无法访问、无法修改,或者无法执行。这背后,往往隐藏着目录权限的“玄机”,或者说,是对文件和目录权限理解上的一个常见误区。在我看来,这是初学者最容易踩的坑之一。

文件权限和目录权限虽然都用

rwx
登录后复制
表示,但它们在实际操作中的意义是有些不同的:

  1. r
    登录后复制
    (读) 权限:

    图改改
    图改改

    在线修改图片文字

    图改改 455
    查看详情 图改改
    • 文件: 允许你查看文件的内容。
    • 目录: 允许你列出目录下的文件和子目录名称(使用
      ls
      登录后复制
      命令)。没有读权限,你甚至不知道目录里有什么。
  2. w
    登录后复制
    (写) 权限:

    • 文件: 允许你修改、保存文件内容,或者删除文件。
    • 目录: 允许你在该目录下创建、删除文件或子目录,以及重命名目录内的文件。这是个非常强大的权限,需要谨慎赋予。
  3. x
    登录后复制
    (执行) 权限:

    • 文件: 允许你运行这个文件(如果它是一个可执行程序或脚本)。
    • 目录: 这是最关键的区别! 目录的
      x
      登录后复制
      权限允许你进入该目录(
      cd
      登录后复制
      命令),并访问其内部的任何文件或子目录,前提是那些文件或子目录本身也有相应的权限。如果一个目录没有
      x
      登录后复制
      权限,即使你有它的
      r
      登录后复制
      权限(可以
      ls
      登录后复制
      看到内容),也无法
      cd
      登录后复制
      进去,更别提访问里面的文件了。

常见的权限问题及原因:

  • 无法进入目录: 目录没有

    x
    登录后复制
    权限。

    • 比如,一个目录权限是
      644
      登录后复制
      (
      rw-r--r--
      登录后复制
      ),你
      ls
      登录后复制
      可以看到里面的文件,但
      cd
      登录后复制
      会提示“Permission denied”。因为缺少了
      x
      登录后复制
      ,就相当于没有“通行证”。
    • 解决方案:
      chmod +x my_directory
      登录后复制
      chmod 755 my_directory
      登录后复制
  • 无法访问目录内的文件,即使文件权限已放开:

    • 这通常是父目录(或更上层目录)的
      x
      登录后复制
      权限不足导致的。就好比你有一把钥匙可以打开某个房间的门(文件权限),但你连进入这栋楼的大门(父目录权限)的资格都没有。
    • 解决方案: 检查并确保从根目录到目标文件的所有父目录都至少有
      x
      登录后复制
      权限(通常是
      755
      登录后复制
      )。
  • 无法在目录中创建/删除文件: 目录没有

    w
    登录后复制
    权限。

    • 即使你对文件有写权限,但如果目录不允许你“动手术”,你也无法在该目录中创建新文件或删除现有文件。
    • 解决方案:
      chmod +w my_directory
      登录后复制
      chmod 775 my_directory
      登录后复制

除了

chmod
登录后复制
,还有一些其他因素可能影响访问:

  • 文件所有权 (
    chown
    登录后复制
    ,
    chgrp
    登录后复制
    ):
    如果你不是文件的所有者,或者不在文件的所属组内,那么你的权限就受“其他人”或“组”权限的限制。有时,仅仅修改权限不够,还需要改变文件的所有者或所属组。
  • SELinux (Security-Enhanced Linux): CentOS默认开启SELinux,它提供了另一层安全防护。即使
    chmod
    登录后复制
    设置了正确的权限,SELinux策略也可能阻止访问。这通常会在日志中看到
    denied
    登录后复制
    的记录。处理SELinux问题通常需要
    semanage
    登录后复制
    restorecon
    登录后复制
    命令,或者暂时禁用它(不推荐)。
  • 文件系统挂载选项: 某些文件系统可能以
    noexec
    登录后复制
    等选项挂载,这会阻止任何文件在其上执行,无论文件权限如何。

所以在排查权限问题时,我通常会从目标文件开始,向上检查其所有父目录的权限,并确保

chown
登录后复制
chgrp
登录后复制
设置也符合预期。只有这样,才能真正确保文件或目录的访问畅通无阻。

使用find命令配合chmod批量管理文件权限

在实际的系统管理中,我们经常会遇到需要批量修改文件或目录权限的场景。比如,你部署了一个新的Web应用,或者从备份恢复了一堆文件,这些文件的权限可能一团糟,手动一个个改显然是不现实的。这时候,

find
登录后复制
命令结合
chmod
登录后复制
,就是一把极其趁手的利器。这套组合拳,效率高,但同时也需要格外小心,一个不慎就可能造成大范围的权限问题。

我个人在使用这套组合时,总是会先用

find
登录后复制
命令不带
exec
登录后复制
参数,单纯地列出我将要操作的文件,确认无误后,再带上
exec
登录后复制
执行
chmod
登录后复制

基本语法:

find <路径> -type <f/d> -name "<模式>" -exec chmod <权限> {} \;
登录后复制

  • <路径>
    登录后复制
    :指定从哪个目录开始查找。
  • -type <f/d>
    登录后复制
    • f
      登录后复制
      表示只查找文件 (file)。
    • d
      登录后复制
      表示只查找目录 (directory)。
  • -name "<模式>"
    登录后复制
    :根据文件名模式进行匹配,例如
    "*.sh"
    登录后复制
    匹配所有以
    .sh
    登录后复制
    结尾的文件。
  • -exec <命令> {} \;
    登录后复制
    :对
    find
    登录后复制
    找到的每个结果执行指定的命令。
    {}
    登录后复制
    会被替换为当前找到的文件或目录的路径,
    \;
    登录后复制
    是命令的结束符。

常见批量修改场景:

  1. 给所有脚本文件添加执行权限: 假设你有一个项目目录

    my_project
    登录后复制
    ,里面有很多
    .sh
    登录后复制
    脚本,需要全部赋予执行权限。

    # 先预览一下哪些文件会被修改
    find my_project -type f -name "*.sh"
    
    # 确认无误后,执行修改
    find my_project -type f -name "*.sh" -exec chmod +x {} \;
    登录后复制

    这里我用了

    +x
    登录后复制
    ,这样可以只添加执行权限,而不改变原有的读写权限。

  2. 统一设置所有普通文件的权限: 通常,普通文件我们希望所有者可读写,其他人只读(

    644
    登录后复制
    )。

    # 预览
    find my_project -type f
    
    # 执行修改
    find my_project -type f -exec chmod 644 {} \;
    登录后复制
  3. 统一设置所有目录的权限: 对于目录,我们通常希望所有者可读写执行,其他人可读可执行(

    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
    登录后复制
    且文件大小超过1MB的文件,并修改权限。

    find /var/log -user root -size +1M -type f -exec chmod 600 {} \;
    登录后复制

注意事项:

  • 务必先预览: 在执行任何带有
    -exec chmod
    登录后复制
    的命令之前,强烈建议先不带
    -exec
    登录后复制
    或者使用
    -print
    登录后复制
    来查看
    find
    登录后复制
    会匹配到哪些文件。一个错误的路径或模式可能导致灾难性的后果。
  • 权限的选择: 根据实际需求选择最合适的权限。
    777
    登录后复制
    虽然方便,但在生产环境中是极大的安全隐患。
  • chown
    登录后复制
    chgrp
    登录后复制
    权限和所有权是紧密相关的。在批量修改权限的同时,你可能还需要考虑使用
    find -exec chown ...
    登录后复制
    find -exec chgrp ...
    登录后复制
    来调整文件或目录的所有者和所属组。

通过

find
登录后复制
chmod
登录后复制
的结合,你可以高效地管理文件系统的权限,这对于维护一个稳定、安全的CentOS环境至关重要。但记住,能力越大,责任越大,操作前一定要三思。

以上就是CentOS怎么加读写权限_CentOS文件与目录权限修改命令教程的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号