chgrp、chown、chmod 和 usermod 命令

125 阅读2分钟

chgrp (Change Group)

  • 作用 : 修改文件或目录的所属用户组(group)。
  • 语法 :
chgrp [选项] <新用户组> <文件/目录>
chgrp developers example.txt   # 将 example.txt 的用户组改为 developers
chgrp -R staff /home/user      # 递归修改 /home/user 目录及其所有文件的用户组为 staff

chown (Change Owner)

  • 作用 :修改文件或目录的所属用户(owner)或用户组(group)。
  • 语法 :
chown [选项] <新用户>[:<新用户组>] <文件/目录>
chown alice example.txt        # 修改 example.txt 的所有者为 alice
chown alice:developers example.txt  # 修改 example.txt 的所有者为 alice,用户组为 developers
chown -R bob:staff /home/user  # 递归修改 /home/user 目录及其所有文件的所有者为 bob,用户组为 staff

chmod (Change Mode)

  • 作用 : 修改文件或目录的权限(读、写、执行)
  • 语法 :
chmod [选项] <权限模式> <文件/目录>

数字表示法

使用 rwx 组合转换为八进制数:

  • r (读) = 4
  • w (写) = 2
  • x (执行) = 1
  • 无权限 = 0 例如:
chmod 755 script.sh   # 所有者可读、写、执行,组和其他用户可读、执行
chmod 644 document.txt  # 所有者可读写,组和其他用户只能读取

符号表示法

使用 u(所有者)、g(用户组)、o(其他人)、a(所有人):

chmod u+x script.sh  # 让所有者有执行权限
chmod g-w document.txt  # 取消组的写权限
chmod a+r file.txt  # 让所有人可读

usermod (Modify User)

  • 作用 : 修改用户的属性,如用户组、Shell、家目录等。
  • 语法 :
usermod [选项] <用户名>

常见选项:

  • -g <用户组>:修改用户的主用户组
  • -G <附加用户组>:为用户添加附加用户组(需 -a 选项追加)
  • -d <新家目录>:修改用户的家目录
  • -s <新Shell>:修改用户的默认 Shell
  • -l <新用户名>:修改用户名
usermod -g developers alice  # 修改 alice 的主用户组为 developers
usermod -aG sudo bob         # 添加 bob 到 sudo 组(不改变原来的附加组)
usermod -d /home/newhome alice  # 修改 alice 的家目录
usermod -s /bin/zsh alice   # 修改 alice 的默认 Shell 为 zsh

总结

命令作用
chgrp修改文件/目录的所属用户组
chown修改文件/目录的所有者和/或所属组
chmod修改文件/目录的权限
usermod修改用户的属性(组、家目录、Shell等)