第四章 账号和权限管理
一.用户账号和组账号概述
Linux基于用户身份对资源访问进行控制
用户账号:基于身份对资源访问进行控制\
【1】超级用户:root,是 Linux 操作系统中默认的超级用户账号,对本主机拥有最高的权限。系统中超级用户是唯一的。
【2】普通用户:由root或其他管理员创建的用户,默认只具有低权限。
【3】程序用户:用于给应用程序运行的低权限用户,一般不允许登录系统。
(2)组账号:用户账户的集合,用于组织用户账户
【1】基本组:用户加入的第一个组(基本组账号只有一个)
【2】附加组:除了基本组以外用户额外加入的的组
(3)UID和GID:是用户或组的ID
【1】UID:用户账户的ID
【2】GID:组账户的ID
【3】UID和GID的范围
root的UID和GID都固定为0
程序用户默认的UID/GID范围:centos7以前为 1~499;从centos7开始为 1~999
普通用户默认的UID/GID范围:centos7以前为 500~60000;从centos7开始为 1000~60000
二.与用户、组 相关的文件、目录
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
“家”目录
邮箱目录
用户模板目录
三.用户账号文件/etc/passwd
保存用户名称、宿主目录、登录Shell等基本信息
文件位置:/etc/passwd每一行对应一个用户的帐号记录
[root@localhost ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
四.用户账号文件/etc/shadow
保存用户的密码、账号有效期等信息
文件位置:/etc/shadow
每一行对应一个用户的密码记录
[root@localhost ~]# head -2 /etc/shadow
root:$1$55HB4pbx$acHqk4lZiHTZ9cw0ZJe8f0:14374:0:99999:7:::
bin:*:14374:0:99999:7:::
[root@localhost ~]# tail -1 /etc/shadow
teacher:$1$BT7teaYX$s2sr6uFUwKhtU.8/8VpzB1:14374:0:99999:7:::
4.1关于 /etc/shadow 每一列的含义
root:$1$55HB4pbx$acHqk4lZiHTZ9cw0ZJe8f0:14374:0:99999:7:::
第1列.用户名
第2列.加密密码
可以在密码前人为的加入“!”或“*”改变加密值让密码暂时失效,使这个用户无法登陆,达到暂时禁止用户登录的效果
所有伪用户的密码都是“!!”或“*”,代表没有密码是不能登录的。当然我新创建的用户如果不设定密码,它的密码项也是“!!”,代表这个用户没有密码,不能登录
第3列.密码最近更改时间
date -d “1970-1-1 xxxxx days”
第4列.两次密码的修改间隔时间(和第3字段相比)
第5列.密码有效期(和第3字段相比)
第6列.密码修改到期前的警告天数(和第5字段相比)
第7列.密码过期后的宽限天数(和第5字段相比)
第8列.密码失效时间
第9列.保留
五.组相关文件 /etc/group 文件
root:x:0:
第1列.组名
第2列.组密码位
第3列.GID
第4列.此组中支持的其他用户(附加组是此组的用户)初始组:每个用户初始组只能有一个,和用户名相同附加组:每个用户可以属于多个附加组,把用户加入组,其实 就是加入的附加组
5.1 /etc/gshadow 文件
用户的“家”目录
比如: /root 、 /home/teacher
比如: /root 、 /home/teacher
邮箱在 /var/spool/mail 目录当中,例如 teacher用户的邮箱就是/var/spool/mail/teacher 文件
用户模板目录
/etc/skel/
六.添加用户账号useradd命令
useradd命令
useradd [选项]... 用户名
[root@192 ~]# useradd -u lxp 1314 #指定lxp的UID为1314
[root@192 ~]# id lxp #GID和组默认为1314(没有对应的组)
uid=1314(lxp) gid=1314(lxp) 组=1314(lxp)
[root@192 ~]#
常用选项(查看 --help)
-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用。
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)。只能用绝对路径指定目录,不需要事先创建目录
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
-g:指定用户的基本组名(或使用 GID 号),对应的组名必须已存在。
-G:指定用户的附加组名(或使用 GID 号),对应的组名必须已存在。
-M:不建立宿主目录。
-s:指定用户的登录Shell
比如/bin/bash为可登陆系统,/sbin/nologin和/bin/false为禁止用户登陆系统
————————————————
6.1与添加账号相关的配置文件
/etc/default/useradd
/etc/login.defs
七.设置/更改用户口令passwd
passwd命令
passwd [选项]... 用户名
[root@192 ~]# passwd lisi #更改Lisi 的密码
更改用户 lisi 的密码 :
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@192 ~]# passwd #不指定用户,修改 root 的密码
更改用户 root 的密码 :
新的 密码:
无效的密码: 密码少于 8 个字符
passwd:所有的身份验证令牌已经成功更新
[root@192 ~]# passwd -d lisi #清空lisi的密码
清除用户的密码 lisi
passwd: 操作成功
[root@192 ~]# passwd -l lisi #锁定lisi用户
锁定用户 lisi 的密码
passwd: 操作成功
[root@192 ~]# passwd -u lisi #解锁lisi用户
解锁用户 lisi 的密码。
passwd: 操作成功
[root@192 ~]# passwd -S lisi
lisi PS 2024-04-14 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
[root@192 ~]#查看用户锁定状态
常用选项
- passwd -d:清空指定用户的密码,仅使用用户名即可登录系统。
- passwd -l:锁定用户账户,锁定的用户账号将无法再登录系统。
- passwd -S:查看用户账户的状态(是否被锁定)。
- passwd -u:解锁用户账户
八.修改用户账号的属性usermod命令
usermod [选项]... 用户名
[root@192 ~]# usermod -l lisi liwu #修改用户名 lisi 为 liwu
[root@192 ~]# vi /etc/passwd
liwu:x:9529:9529::/home/lisi:/sbin/nologin
[root@192 ~]# usermod -u liwu 4567 -g 9527 #修改用户UID为4567,组账户名为9527
[root@192 ~]# vi /etc/passwd
liwu:x:4567:9527::/home/lisi:/sbin/nologin
常用选项
usermod -l:更改用户账号的登录名称。
usermod -L:锁定用户账户。
usermod -U:解锁用户账户usermod -u:修改用户的 UID 号。
以下选项与添加用户useradd命令中的含义相同
usermod -d:修改用户的宿主目录位置。
usermod -e:修改用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式。
usermod -g:修改用户的基本组名(或使用 GID 号)。
usermod -G:修改用户的附加组名(或使用 GID 号)。
usermod -s:指定用户的登录 Shell。
九.删除用户账号userdel
userdel命令
userdel [-r] 用户名
添加 -r 选项时,表示连用户的宿主目录一并删除
[root@192 ~]# useradd -u ppp 1516 #创建用户ppp 指定 UID 为1516
[root@192 ~]# vi /etc/passwd
ppp:x:1516:1516::/home/ppp:/bin/bash
[root@192 ~]# userdel -r ppp #删除用户ppp和他的目录
十.切换用户 su 命令
su [ - ] 用户名
“-” 不能省略,它代表切换用户身份时,用户的环境变量也要切换成新用户的环境变量。
十一.添加组账号groupadd命令
groupadd [-g GID] 组账号名
#添加组账号 market
root@localhost ~]# groupadd -g 1000 market
[root@localhost ~]# tail -1 /etc/group
market:x:1000:
十二.添加删除组成员gpasswd命令
设置组帐号密码(极少用)、添加/删除组成员
gpasswd [选项]... 组帐号名
常用选项
-a:向组内添加一个用户
[root@192 ~]# gpasswd -a test1 lll
正在将用户“lll”加入到“test1”组中
[root@192 ~]# gpasswd -a test1 xxx
正在将用户“xxx”加入到“test1”组中
[root@192 ~]# gpasswd -a test1 ppp
正在将用户“ppp”加入到“test1”组中
[root@192 ~]# gpasswd -a test1 sss
正在将用户“sss”加入到“test1”组中
[root@192 ~]# vi /etc/group
test1:x:1001:lll,xxx,ppp,sss
test2:x:1314:
lll:x:1315:
xxx:x:1002:
ppp:x:1003:
sss:x:1004:
-d:从组内删除一个用户成员
[root@192 ~]# gpasswd -d test1 lll
正在将用户“lll”从“test1”组中删除
[root@192 ~]# gpasswd -d test1 xxx
正在将用户“xxx”从“test1”组中删除
[root@192 ~]# vi /etc/group
test1:x:1001:ppp,sss
test2:x:1314:
lll:x:1315:
xxx:x:1002:
ppp:x:1003:
sss:x:1004:
-M:定义组成员列表,以逗号分隔
[root@192 ~]# gpasswd -M test1 lll,xxx
[root@192 ~]# vi /etc/group
test1:x:1001:lll,xxx
test2:x:1314:
lll:x:1315:
xxx:x:1002:
ppp:x:1003:
sss:x:1004:
十三.删除组账号groupdel
groupdel 组帐号名
[root@192 ~]# groupdel test1 #删除组test1
[root@192 ~]# vi /etc/group
#删除组账号market
[root@localhost ~]# groupdel market
[root@localhost ~]# grep "market" /etc/group
十四.查询账号信息groups命令
查询用户所属的组
groups [用户名]
[root@192 ~]# groups lll #查询 lll 组的信息
lll : lll test1
id命令 查询用户身份标识
id [用户名]
[root@192 ~]# id xxx
uid=1002(xxx) gid=1002(xxx) 组=1002(xxx),1316(test1)
[root@192 ~]#
finger命令查询用户帐号的详细信息
finger [用户名]
w 命令
查询已登录到主机的用户信息
who命令
users命令
小结
用户相关命令
#添加用户命令
useradd
#更改用户口令命令
passwd
#删除用户账号命令
userdel
#修改账号属性命令
usermod
组相关命令
#添加组账号命令
groupadd
#添加删除组成员命令
gpasswd
#删除组账号
groupdel
查看登录的用户
w who users
十五.查看文件/目录的权限和归属
文件类型
十六.文件/目录的权限和归属
访问权限
r 读取:允许查看文件内容;允许显示目录列表
w 写入:允许修改文件内容;允许在目录中新建移动
删除文件或子目录
x 可执行 :允许运行程序;允许进入目录
归属(所有权)
属主:拥有该文件或目录的用户帐号
属组:拥有该文件或目录的组帐号
十七.设置文件和目录的权限chmod命令
chmod [u、g、o、a] [+、-、=] [rwx] 文件或目录
ugoa属主、属组、其他用户、所有用户
+-=增加、去除、重新定义权限
rwx读、写、运行权限
或
chmod nnn 文件或目录
nnn 三位数字
常用选项
chmod -R 递归修改指定目录下所有子项的权限
十八.设置文件和目录的归属-chown命令
chown 属主 文件或目录
chown :属组 文件或目录
chown 属主:属组 文件或目录
常用选项
chown -R 递归修改指定目录下所有文件、子目录的归属
注意
普通用户不能修改文件的所有者,哪怕自己是文件的所有者也不行。
普通用户可以修改所有者是自己的文件的权限
[root@192 opt]# chown aaa 1.txt
[root@192 opt]# ls -l
总用量 0
----------. 1 aaa root 0 4月 14 20:55 1.txt 属主变成aaa
----------. 1 root root 0 4月 14 20:55 2.txt
----------. 1 root root 0 4月 14 20:56 3.txt
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
[root@192 opt]# chown :bbb 2.txt
[root@192 opt]# ll
总用量 0
----------. 1 aaa root 0 4月 14 20:55 1.txt
----------. 1 root bbb 0 4月 14 20:55 2.txt 属组变成bbb
----------. 1 root root 0 4月 14 20:56 3.txt
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
[root@192 opt]# chown aaa :bbb 3.txt
chown: 无法访问":bbb": 没有那个文件或目录
[root@192 opt]# chown aaa:bbb 3.txt
[root@192 opt]# ll
总用量 0
----------. 1 aaa root 0 4月 14 20:55 1.txt
----------. 1 root bbb 0 4月 14 20:55 2.txt
----------. 1 aaa bbb 0 4月 14 20:56 3.txt 属主和属组变成aaa和bbb
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
[root@192 opt]# chown -R aaa.bbb rh
[root@192 opt]# ll
总用量 0
----------. 1 aaa root 0 4月 14 20:55 1.txt
----------. 1 root bbb 0 4月 14 20:55 2.txt
----------. 1 aaa bbb 0 4月 14 20:56 3.txt
drwxr-xr-x. 2 aaa bbb 36 4月 14 21:05 rh
[root@192 opt]# ll -R rh
rh:
总用量 0
-rw-r--r--. 1 aaa bbb 0 4月 14 21:05 aa
-rw-r--r--. 1 aaa bbb 0 4月 14 21:05 bb
-rw-r--r--. 1 aaa bbb 0 4月 14 21:05 cc
[root@192 opt]#
修改 rh 下的子目录的属主和属组
设置文件和目录的属组chown
设置文件和目录的属组chown
十九.权限掩码umask
umask作用
控制新建的文件或者目录的权限
默认权限去除umask的权限为新建的文件或者目录的权限
umask查看:umask [-S]
umask设置:umask 022
umask计算方法
36 4月 14 21:05 rh
[root@192 opt]# ll -R rh
rh:
总用量 0
-rw-r–r–. 1 aaa bbb 0 4月 14 21:05 aa
-rw-r–r–. 1 aaa bbb 0 4月 14 21:05 bb
-rw-r–r–. 1 aaa bbb 0 4月 14 21:05 cc
[root@192 opt]#
修改 rh 下的子目录的属主和属组
### 设置文件和目录的属组chown
#### 设置文件和目录的属组chown
[外链图片转存中...(img-s4u3UvZg-1728442376993)]
[外链图片转存中...(img-NUtpp6nD-1728442376993)]
[外链图片转存中...(img-papsfx03-1728442376994)]
## 十九.权限掩码umask
#### umask作用
控制新建的文件或者目录的权限
默认权限去除umask的权限为新建的文件或者目录的权限
umask查看:umask [-S]
umask设置:umask 022
#### umask计算方法
![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://i-blog.csdnimg.cn/direct/8c7f8f224cd440a2a9066abe02edad93.png)