1.用户与用户组
(1)用户
- 超级用户:超级管理员用户root用户,拥有该操作系统最高管理权限,UID=0,一般不允许直接登录图形化界面。
- 普通用户:由超级管理员创建,权限受到部分限制,UID:1000~65535,只能访问自己的家目录及目录下的文件进行访问和修改。
- 虚拟用户:不允许登录,一般为系统服务或进程使用。如bin、nobody等用户,主要是为了方便系统的管理,UID:1~999。
用户的配置文件包括/etc/passwd和/etc/shadow
/etc/passwd包含用户账号的基本信息
/etc/shadow包含用户账号的密码信息
(2)用户组
用户组分为基本组(主要组)和附加组(公共组)。基本组是伴随用户的创建而创建的,与用户同名,用户附属于基本组;附加组中的用户可属于多个附加组,可在/etc/group中查看。/etc/gshadow包含组的密码信息。
(3)用户与用户组
Linux是一个多用户多任务的操作系统,每个用户都有唯一的用户名和密码。用户组具有与用户相同逻辑的集合,有时我们需要多个用户拥有相同的权限对一个程序、任务进行操作。用户与用户组的对应关系有四大类:
一对一 | 一个用户可以存放在一个组中,是组中的唯一成员 |
一对多 | 一个用户可以存放在多个用户组中,此用户具有多个组的共同权限 |
多对一 | 多个用户可以存放在一个组中,这些用户具有与组相同的权限 |
多对多 | 多个用户可以存放在多个组中,就是以上三种关系的集合 |
2.文件系统权限
(1)文件基本权限
r(读取)、w(写入)、x(执行)
(2)默认权限
(3)特殊权限
可执行文件的setuid/setgid权限表示将以文件的用户/组身份执行命令,而不是以运行命令的用户身份执行,
特殊权限 | 对文件的影响 | 对目录的影响 |
---|---|---|
u+s(suid) | 以文件所有者身份执行 | 无 |
g+s(写入) | 以文件所有组身份执行 | 在目录下创建的文件所有组将与目录的所有组一致 |
o+t(执行) | 无 | 对目录具有写入权限的用户仅可以删除其拥有的文件,无法删除、修改其他用户的文件 |
3.用户、用户组管理
(1)创建用户 useradd,可选参数如下:
-c
:添加注释,用于描述新用户的注释信息。-d
:指定新用户的主目录。-g
:指定新用户所属的初始组。-G
:指定新用户所属的附加组。-s
:指定新用户的默认shell。-u
:指定新用户的UID。-n
:不创建新用户的主目录。-r
:创建一个系统账户。-m
:创建新用户的主目录。-p
:为新用户设置密码。
(2)管理用户密码 passwd,可选参数如下:
-
-l
:锁定用户账户,使其无法登录系统。 -u
:解锁用户账户,使其可以登录系统。-d
:删除用户的密码,使其只能通过其他认证方式登录系统。-e
:将用户的密码设置为过期状态,强制用户在下次登录时更改密码。-S
:显示用户的密码状态信息。-n
:不更新密码的最后一次更改时间戳。-R
:强制用户在下次登录时更改密码。-a
:设置用户的密码策略。-x
:设置用户的密码最大使用期限。-w
:设置用户的密码警告期限。
(3)修改用户账号属性 usermod,,可选参数如下:
-
-c
:添加注释,用于描述用户的注释信息。 -d
:指定用户的新主目录。-g
:指定用户的新初始组。-G
:指定用户的新附加组。-l
:更改用户的登录名。-s
:指定用户的新默认shell。-u
:指定用户的新UID。-L
:锁定用户账户,使其无法登录系统。-U
:解锁用户账户,使其可以登录系统。-e
:设置用户的密码过期时间。
(4)删除用户账号 userdel,可选参数如下:
-r
:同时删除用户的主目录和邮件目录。-f
:强制删除用户账户,即使该用户当前正在登录系统。-Z
:清除用户的SELinux用户映射。-l
:将用户的登录名重命名为已删除的用户账户名。-s
:指定一个替代的shell,以便在删除用户账户后仍能使用该shell。-c container
:将用户账户放入指定的容器中。-R
:递归删除用户及其所属的所有子用户。-P
:不删除用户的密码。-n
:不更新密码的最后一次更改时间戳。-p
:在删除用户账户之前,先将其密码设置为不可用状态。
(5)添加用户组 groupadd,可选参数如下:
-g
:指定新组的GID(组标识号)。-o
:允许使用已存在的GID。-r
:创建一个系统账户组。-f
:强制创建组,即使组已存在。-n
:不更新组的最后一次更改时间戳。
(6)修改用户组 gpasswd,可选参数如下:
-a
:添加组成员。-d
:删除组成员。-M
:指定组成员,多个组成员以“,”分隔,会覆盖原有的。
(7)删除用户组 groupdel
4.文件系统权限的管理
1.管理文件系统权限
(1)查看文件系统权限 ls
(2)修改文件系统权限
chmod 命令用于设置文件、目录的基本权限
chmod [ugoa] [+-=] [rwx] [nnn]文件或目录
ugoa:u宿主,g属组,o其他用户,a所有用户
+-=:+增加权限,-减少权限,=设置对应权限
rwx:r:读,w写,x执行
nnn:宿主:4,属组:2,其他用户:1
(3)设置文件、目录的所有者、所属组
chown 命令用于设置文件、目录的归属
chown [选项] [属主] [:[属组]] [-R]文件或目录
2.特殊权限
(1)特殊权限 附加在所属组的x位上,所属组的权限会变成s
(2)ACL访问控制列表
getfacl 命令查看相关ACL访问策略的权限
setfacl 命令设置用户对文档的访问权限
3.利用sudo控制用户权限
visudo 命令来编辑/etc/sudoers文件
Cmnd_Alias 用户名 = 所授予的权限
Runas_Alias OP=root (以 root 用户身份运行命令)
用户名 ALL = (OP) 别名(用户名大写)
su - 用户名 切换用户
sudo 命令 可执行管理员命令(授予权限的前提下)