Linux入门—Shell常用命令之权限管理

Linux入门—Shell常用命令之权限管理
最新回答
伪装者

2026-03-12 03:34:58

Linux权限管理是系统安全的核心,主要通过chmod、chown和chgrp三个命令实现文件/目录的权限、所有者及所属组控制。以下是详细说明:

1. chmod 命令(修改权限)

功能:调整文件或目录的读(r)、写(w)、执行(x)权限。语法

chmod [选项] 权限模式 文件/目录关键参数
  • 权限对象

    u(所有者)、g(所属组)、o(其他用户)、a(所有用户)。

  • 权限动作

    +(添加权限)、-(取消权限)、=(直接赋值)。

  • 权限代号

    r=4、w=2、x=1,组合使用(如 7=rwx,5=r-x)。

  • 选项

    -R:递归修改目录及其内容。

示例
  • 符号模式

    chmod u+x file.txt # 给所有者添加执行权限chmod go-w file.txt # 移除组和其他用户的写权限chmod a=rw file.txt # 所有用户权限设为读写
  • 数字模式

    chmod 755 script.sh # 所有者rwx,组和其他用户r-xchmod 644 data.txt # 所有者rw,组和其他用户r
  • 递归修改

    chmod -R 755 /path/to/dir # 修改目录及其内容的权限
2. chown 命令(修改所有者/组)

功能:更改文件或目录的所有者及所属组。语法

chown [选项] [所有者][:组] 文件/目录关键参数
  • 所有者与组

    格式:用户名:组名 或 用户名.组名(如 user:group 或 user.group)。

    仅修改所有者时省略组(如 chown user file)。

  • 选项

    -R:递归处理子目录和文件。

示例:chown user1 file.txt # 修改所有者chown user1:group1 file.txt # 修改所有者和组chown -R user1:group1 /dir # 递归修改目录权限3. chgrp 命令(修改所属组)

功能:仅修改文件或目录的所属组。语法

chgrp [选项] 组名 文件/目录关键参数
  • 选项

    -R:递归修改。

示例:chgrp developers file.txt # 修改所属组chgrp -R developers /dir # 递归修改目录组权限管理实践建议
  1. 最小权限原则:仅授予必要的权限(如脚本需x权限,配置文件仅需rw)。
  2. 递归操作谨慎使用:-R选项会修改所有子项,操作前建议备份。
  3. 符号与数字模式选择

    符号模式(如 u+x)适合精细控制。

    数字模式(如 755)适合批量设置标准权限。

权限表示示例
  • 数字模式:755 → rwxr-xr-x

    所有者:7(4+2+1)= rwx

    组和其他:5(4+0+1)= r-x

  • 符号模式:u=rwx,g=rx,o= → rwxr-x---

通过合理使用这三个命令,可以高效管理Linux系统的文件权限,确保安全性和功能性平衡。