17370845950

【知识】Linux用户组权限设置

在linux系统中,文件和目录的权限是关键的概念,它们决定了哪些用户可以对特定的文件或目录执行哪些操作。

一、权限的类型

Linux系统中的每个文件和目录都具备以下三种类型的权限:

  • 读(Read):用字母r表示,允许查看文件内容或列出目录中的文件。
  • 写(Write):用字母w表示,允许修改文件内容或在目录中创建、删除、重命名文件。
  • 执行(Execute):用字母x表示,允许运行可执行文件,或者进入某个目录。

二、权限的主体

权限分为三类用户群体:

  • 所有者(Owner):文件的创建者,默认拥有全部权限。
  • 组(Group):属于该文件所在组的用户共享这些权限。
  • 其他(Others):除了所有者和组之外的所有用户。

三、权限的表示方式

权限通常以三组字符形式展示,每组三个字符,分别代表所有者、组和其他用户的权限。例如,rwxr-xr--表示:

  • rwx:所有者有读、写、执行权限。
  • r-x:组成员有读和执行权限,但无写权限。
  • r--:其他用户仅能读取文件。

四、常用权限管理命令

  • chmod:用于更改文件或目录的权限。
    示例:chmod 755 filename 给所有者完全权限,组和其他用户赋予读和执行权限。
    符号模式:chmod u+x filename 给所有者添加执行权限。

  • chown:更改文件或目录的所有者。
    示例:chown username:groupname filename 将文件所有者设为username,所属组设为groupname

  • chgrp:仅更改文件或目录的所属组。
    示例:chgrp groupname filename

五、特殊权限位

  • 粘滞位(Sticky Bit):对于目录,只有文件所有者、目录所有者和root才能删除或重命名其中的文件。
    设置方式:chmod +t dirname

  • SetGID(s):目录下新建的文件自动继承父目录的组。
    设置方式:chmod g+s dirname

  • SetUID(s):可执行文件以文件所有者的身份运行。
    设置方式:chmod u+s filename

六、ACL(访问控制列表)

ACL提供更精细的权限控制,支持为特定用户或组设置独立权限。

  • 查看ACL:getfacl filename
  • 设置ACL:setfacl -m u:username:rwx filename

用户组权限设置示例

以下是在Ubuntu系统中配置用户组及目录权限的具体步骤。

1. 创建用户组

使用groupadd命令创建一个名为gp的新用户组:

sudo groupadd gp

2. 更改目录所有权

使用chown命令将/home/user/Desktop目录的所有组更改为gp

sudo chown :gp /home/user/Desktop

如果目录中有已有文件,建议递归更改其所有权:

sudo chown -R :gp /home/user/Desktop/*

3. 设置目录权限(可选)

使用chmod命令限制只有组gp可以访问目录:

sudo chmod 750 /home/user/Desktop

4. 为用户组设置访问权限

单独为组gp添加读取和执行权限:

sudo chmod g+rx /home/user/Desktop

若需同时设置目录内所有文件,使用递归参数:

sudo chmod -R g+rx /home/user/Desktop/*

向用户组中添加用户

1. 确认目标用户名

假设要添加的用户名为username

2. 使用usermod命令添加用户到组

sudo usermod -a -G gp username

3. 验证用户是否加入组

使用groups命令查看用户所属组:

groups username

如输出中包含gp,则添加成功。

4. 重新登录使配置生效

用户需重新登录或重启系统,以便应用新的组权限。


从用户组中移除用户

1. 确认用户名与组名

假设要移除的是用户username,从组gp中移除。

2. 使用gpasswd命令移除用户

sudo gpasswd -d username gp

3. 验证是否移除成功

再次使用groups命令检查:

groups username

如不再显示gp,说明已成功移除。