Contents

Linux 文件权限管理:chown 和 chmod

在 Linux 系统中,文件和目录的权限管理是一个至关重要的操作。本文将介绍两条重要命令:chown(更改文件所有者和用户组)以及 chmod(更改文件权限),帮助你轻松管理文件的访问权限。


一、chown 命令

chown 命令用于更改文件或目录的所有者和用户组。

基本语法

chown [选项] 用户:用户组 文件或目录
  • 用户:文件的新所有者。
  • 用户组:文件的新用户组。

常用示例

1. 更改文件所有者

chown user1 文件名

将文件的所有者更改为 user1

2. 更改文件所有者和用户组

chown user1:group1 文件名

将文件的所有者更改为 user1,用户组更改为 group1

3. 只更改用户组

chown :group1 文件名

只更改文件的用户组为 group1

4. 递归更改目录及其内容的所有者

chown -R user1:group1 目录名

将目录及其所有子文件的所有者更改为 user1,用户组更改为 group1

查看文件当前的所有者和用户组

使用 ls -l 命令查看:

ls -l 文件名

二、chmod 命令

chmod 命令用于更改文件或目录的权限。权限由三种角色(所有者用户组其他人)及三种权限(执行)定义。

基本语法

chmod [选项] 权限 文件或目录

权限可以使用 数字模式符号模式 设置。


数字模式

每种权限对应的数字值:

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

通过将数字相加,可以表示不同权限。例如:

  • 7 = 读 + 写 + 执行(rwx
  • 6 = 读 + 写(rw-
  • 5 = 读 + 执行(r-x
  • 0 = 无权限(---

示例

  1. 设置所有者、用户组、其他人权限分别为 rwxr-xr--

    chmod 754 文件名
  2. 递归更改目录及其所有子文件的权限:

    chmod -R 755 目录名

符号模式

符号模式使用以下符号:

  • u:所有者
  • g:用户组
  • o:其他人
  • a:所有人(包括 ugo

权限操作符:

  • +:添加权限
  • -:移除权限
  • =:设置为指定权限

示例

  1. 给所有者添加执行权限:

    chmod u+x 文件名
  2. 移除用户组的写权限:

    chmod g-w 文件名
  3. 给所有人设置读权限:

    chmod a=r 文件名

三、chownchmod 联合使用

  1. 将文件的所有者设置为 user1,用户组设置为 group1,并设置权限为 rwxr-xr--

    chown user1:group1 文件名
    chmod 754 文件名
  2. 递归设置目录的所有者和权限:

    chown -R user2:group2 目录名
    chmod -R 755 目录名

四、权限查看和理解

使用 ls -l 查看文件权限:

ls -l 文件名

示例输出:

-rwxr-xr-- 1 user1 group1 4096 Nov 12 12:00 文件名
  • 第 1 列:文件类型和权限(rwxr-xr--
  • 第 2 列:硬链接数
  • 第 3 列:所有者
  • 第 4 列:用户组
  • 第 5 列:文件大小(字节)
  • 第 6-8 列:文件修改时间
  • 第 9 列:文件名

五、总结

命令用途
chown user:group更改文件所有者和用户组
chmod 754通过数字模式更改文件权限
chmod u+x通过符号模式更改文件权限
chown -R递归更改目录及其子文件所有者
chmod -R递归更改目录及其子文件权限

通过掌握 chownchmod 命令,你可以灵活管理 Linux 系统中的文件权限,确保文件的安全性和可控性。