在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 dirnameSetGID(s):目录下新建的文件自动继承父目录的组。
设置方式:chmod g+s dirnameSetUID(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,说明已成功移除。










