如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~
目录
背景知识:Linux下的权限介绍
1. 权限的类型
2. 权限的主体
3. 权限的表示
4. 设置权限的命令
5. 特殊权限
6. ACL(访问控制列表)
用户组权限设置示例
用户组设置
用户组中添加用户
用户组中删除用户
背景知识:Linux下的权限介绍
在Linux系统中,文件和目录的权限是非常重要的概念,它们决定了哪些用户可以对文件或目录执行哪些操作。
1. 权限的类型
Linux系统中的每个文件和目录都有三种类型的权限:
- 读(Read):用字母
r
表示,允许用户读取文件内容或查看目录中的文件列表。 - 写(Write):用字母
w
表示,允许用户修改文件内容或在目录中创建、删除、重命名文件。 - 执行(Execute):用字母
x
表示,允许用户执行文件(对于可执行文件)或进入目录(对于目录)。
2. 权限的主体
Linux系统中的权限分为三组主体:
- 所有者(Owner):文件的创建者,默认拥有该文件的所有权限。
- 组(Group):文件所属的用户组,组内的用户共享这些权限。
- 其他(Others):系统中除了文件所有者和组内用户之外的所有用户。
3. 权限的表示
权限通常以三组字符表示,每组包含三个字符,分别对应所有者、组和其他用户的权限。例如,rwxr-xr--
表示:
-
rwx
:所有者有读、写、执行权限。 -
r-x
:组有读、执行权限,没有写权限。 -
r--
:其他用户只有读权限。
4. 设置权限的命令
- chmod:改变文件或目录的权限。
- 例如:
chmod 755 filename
会给所有者全部权限,给组和其他用户读和执行权限。 - 使用符号模式:
chmod u+x filename
给所有者增加执行权限。
- chown:改变文件或目录的所有者。
- 例如:
chown username:groupname filename
将文件的所有者改为username
,组改为groupname
。
- chgrp:改变文件或目录的组。
- 例如:
chgrp groupname filename
将文件的组改为groupname
。
5. 特殊权限
- 粘滞位(Sticky Bit):对于目录,如果设置了粘滞位(
t
),则只有文件所有者、目录所有者和root用户可以删除或重命名目录中的文件。
- 设置粘滞位:
chmod +t dirname
- 集群(SetGID):对于目录,如果设置了集群位(
s
),则在该目录下创建的新文件和目录会自动继承父目录的组。
- 设置集群位:
chmod g+s dirname
- 集群用户(SetUID):对于可执行文件,如果设置了集群用户位(
s
),则文件将以文件所有者的权限执行,而不是执行者自己的权限。
- 设置集群用户位:
chmod u+s filename
6. ACL(访问控制列表)
ACL提供了更细粒度的权限控制,允许你为单个用户或用户组设置特定的权限,而不仅仅是所有者、组和其他用户。
- 查看ACL:
getfacl filename
- 设置ACL:
setfacl -m u:username:rwx filename
理解这些基本的权限概念和命令对于管理Linux系统和确保系统安全至关重要。
用户组权限设置示例
用户组设置
在Ubuntu系统中,你可以使用groupadd
命令来创建一个新的用户组,然后使用chmod
和chown
命令来设置目录的权限和所有权,使得新创建的用户组可以访问和执行目录中的文件。
1、创建用户组: 打开终端,输入以下命令来创建一个新的用户组gp
:
sudo groupadd gp
2、设置目录所有权: 使用chown
命令来改变/home/user/Desktop
目录的所有权,将其设置为用户组gp
所拥有
:
sudo chown :gp /home/user/Desktop
如果/home/user/Desktop
目录中已经存在文件,你可能还需要改变这些文件的所有权,使用“-R”,使其属于用户组gp
:
sudo chown -R :gp /home/user/Desktop/*
3、直接设置目录权限(用户,可选): 使用chmod
命令来设置目录的权限,使得只有用户组gp
可以执行和读写该目录,而其他用户无法访问:
sudo chmod 750 /home/user/Desktop
注意这里设置了完整的“用户、用户组、其他”三者的权限。这里的750
权限设置表示:目录所有者可读可写可执行、用户组gp
可读可执行、其他用户和用户组无任何权限。
4、单独设置目录权限(用户组): 使用chmod
命令来设置/home/user/Desktop
目录的权限,使得用户组gp
可以访问和执行该目录下的文件。这里我们使用g+rx
来给予用户组读和执行的权限:
sudo chmod g+rx /home/user/Desktop
如果你希望目录中的文件也被用户组gp
访问和执行,使用“-R”,可以递归地设置这些文件的权限:
sudo chmod -R g+rx /home/user/Desktop/*
注意这里是单独设置“用户组”的权限。
用户组中添加用户
要将某个用户添加到已存在的用户组gp
,你可以使用usermod
命令
1、确定要添加的用户: 首先,你需要知道要添加到用户组gp
的用户名。假设用户名为username
。
2、使用usermod命令添加用户到组: 打开终端,输入以下命令将用户username
添加到用户组gp
:
sudo usermod -a -G gp username
这里,-a
选项表示追加用户到指定的组,-G
选项后面跟的是用户组名,username
是你想要添加到组的用户名称。
3、验证用户是否已添加到组: 你可以使用groups
命令来检查用户是否已经被成功添加到用户组gp
:
groups username
这个命令会列出用户所属的所有组,如果gp
出现在列表中,说明用户已被成功添加到该组。
4、重新登录或重启: 为了让用户组的变更立即生效,用户需要重新登录或者重启系统。这样,用户的新组权限才会被系统识别。
用户组中删除用户
要从用户组中删除用户,你可以使用gpasswd
命令的-d
选项。以下是具体的步骤:
1、确定要移除的用户和用户组: 首先,你需要知道要移除的用户名和用户组名。假设用户名为username
,用户组名为gp
。
2、使用gpasswd命令从组中移除用户: 打开终端,输入以下命令将用户username
从用户组gp
中移除:
sudo gpasswd -d username gp
这里,-d
选项表示从组中删除用户,username
是你要移除的用户名称,gp
是用户组名称。
3、验证用户是否已从组中移除: 你可以使用groups
命令来检查用户是否已经被成功从用户组gp
中移除:
groups username
这个命令会列出用户所属的所有组,如果gp
不再出现在列表中,说明用户已经被成功从该组移除。
请注意,这些命令需要root权限,因此你需要在命令前加上sudo
。同时,确保你了解每个命令的作用,以免不小心改变了重要的系统文件的权限。在执行这些操作之前,最好备份重要数据以防万一。