1.16.1账号控制概述
一、基于账号的访问控制
1.基于账号的身份对资源访问进行控制
-账号类别:用户账号,组账号
-识别方式:UID、GID
说明:
UID :作为用户的唯一标识
管理员root的UID为0,创建的普通用户的UID从1000开始
GID:用户组的唯一标识,方便管理用户
2.用户账号
-超级用户、系统用户、普通用户
3.组账号
-基本组(私有组)
-附加组(从属组)
说明:
组账号用来区分权限,不用于登录
一个用户必须属于一个组,默认情况下,创建用户时,会新建一个与用户同名的组
基本组一般与用户同名,由系统创建(不常用)
附件组一般由管理员创建(常用)
二、账号的存放类别
1.账号数据的存放
-存放在本机的磁盘中-本地账号
2.本地账号的数据文件
-/etc/password、/etc/shadow
-/etc/group、/etc/gshadow
三、解析用户账号文件
/etc/password:保存用户账号的基本信息
-每个用户记录一行,以:分割为7段
[root@localhost03 ~]# head -1 /etc/passwd #查看用户账号的基本信息
root:x:0:0:root:/root:/bin/bash
说明:
root:用户名
x:密码占位符
0:用户的UID
0:基本组的GID
root:描述信息这个字段可以为空
/root:家目录
/bin/bash:解释器
1.16.2添加用户账号
一、useradd 添加用户
1.格式
useradd [选项] 用户名
2.常用命令
-u:指定UID标记号
-d:指定宿主目录(家目录),缺省为/home/用户名
-G:指定所属的附加组
-s:指定用户的登录解释器
3.练习
1)创建用户,查看用户是否创建成功
[root@localhost03 ~]# useradd test01 #创建用户test01
[root@localhost03 ~]# grep test01 /etc/passwd #查看用户是否创建成功
2)创建用户指定用户的UID
[root@localhost03 ~]# useradd -u 1800 test02 //创建用户指定UID
说明:
同时该用户的GID也会改变
3)创建用户指定用户的家目录
[root@localhost03 ~]# useradd -d /opt/test03 test03 #创建用户test03,指定家目录为/opt/test03
4)创建用户指定用户的附加组
[root@localhost03 ~]# groupadd test #创建用户组
[root@localhost03 ~]# useradd -G test test04 #创建用户test04,将其加入到test附加组中
[root@localhost03 ~]# id test04 #查看test04用户信息
5)创建用户指定用户的解释器
[root@localhost03 ~]# useradd -s /sbin/nologin test05 //指定test05用户的解释器为/sbin/nologin
说明
/sbin/nologin:禁止登陆操作系统
二、usermod修改用户
1.格式
usermod [选项] 用户名
2.常用命令选项
-l:更改用户账号的登录名称
-u:用户id
-d:家目录路径
-s:登录解释器
-G:附加组 //重置附加组
3.练习
1)修改用户的uid和登录解释器
[root@localhost03 ~]# useradd test06 #创建用户
[root@localhost03 ~]# grep test06 /etc/passwd #查看用户信息
test06:x:1804:1805::/home/test06:/bin/bash
[root@localhost03 ~]# usermod -u 1900 -s /sbin/nologin test06 #修改用户信息
[root@localhost03 ~]# grep test06 /etc/passwd #查看修改结果
test06:x:1900:1805::/home/test06:/sbin/nologin
2)更改用户的名字
[root@localhost03 ~]# usermod -l test07 test06 #更改test06的名称为test07
说明:
-l 后面跟的是新的名字,之后才跟需要修改的用户的名称
3)修改用户的家目录
[root@localhost03 ~]# usermod -d /opt/test07 test07 #修改用户的家目录
说明:
不会创建用户的家目录,只是将/etc/passwd文件的内容修改了
[root@localhost03 ~]# grep test07 /etc/passwd
test07:x:1900:1805::/opt/test07:/sbin/nologin
[root@localhost03 ~]# ls /opt/test07 #查看是否有家目录存在,不会自动创建,只能手动创建
4)重置用户附加组
[root@localhost03 ~]# groupadd ceshi
[root@localhost03 ~]# useradd -G ceshi test08 //指定附加组
[root@localhost03 ~]# id test08
uid=1901(test08) gid=1901(test08) groups=1901(test08),1806(ceshi)
[root@localhost03 ~]# usermod -G test test08 //修改附加组
[root@localhost03 ~]# id test08
uid=1901(test08) gid=1901(test08) groups=1901(test08),1802(test)
说明:
如果用户没有附加组,修改后就会出现附加组
三、passwd设置口令(密码)
1.格式:
passwd [选项] 用户名
说明:
root用户可以重置一个用户的密码
root用户设置密码无复杂性要求
2.常用命令选项
-stdin:从标准输入取密码
3.练习
1)交互式设置密码
[root@localhost03 ~]# passwd xiaoyuan //给xiaoyuan用户设置密码
Changing password for user xiaoyuan.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
2)非交互式设置密码
[root@localhost03 ~]# echo 123 | passwd --stdin xiaoyuan
Changing password for user xiaoyuan.
passwd: all authentication tokens updated successfully.
3)普通用户自己修改密码
[root@localhost03 ~]# su - test01 #切换普通用户
[test01@localhost03 ~]$ passwd //修改普通用户的密码
[test01@localhost03 ~]$ passwd
Changing password for user test01.
Changing password for test01.
(current) UNIX password: #输入旧的密码
New password: #输入新的密码,需要符合密码策略
Retype new password: #重新输入新的密码,进行确认
passwd: all authentication tokens updated successfully.
四、解析用户密码文件
/etc/shadow,保存密码子串,有效期等信息
-每个用户记录一行,以:分割为9段
[root@localhost03 ~]# grep test01 /etc/shadow
test01:$1$f.DWvts9$4LwWU1rFyVn8c/SeoD0/0/:18872:0:99999:7:::
说明:
字段1:用户账号的名称
字段2:加密后的密码字符串
字段3:上次修改密码的时间(从1970-1-1到达上一次修改密码的时间经历的天数)
字段4:密码最短使用的天数,默认为0
字段5:密码最长使用的天数,默认99999
字段6:密码过期前的警告天数,默认7
字段7:密码过期后多少天禁用此用户账号
字段8:账号失效时间,默认值为空
字段9:保留字段
1.16.3用户初始配置
一、用户初始配置文件
1.配置文件的来源
新建用户时,根据/etc/skel模板复制而来
2.主要的配置文件
.bash_profile:每次登录时执行一次
.bashrc:每次进入新的Bash环境执行(开启新的终端)
3.练习
[root@localhost03 ~]# vim /home/test01/.bashrc #写入bashrc环境
2 alias haha='echo 123'
[root@localhost03 ~]# su - test01 //切换用户,相当于开启新的终端
[test01@localhost03 ~]$ haha #验证别名是否成功
二、全局配置文件
1.主要配置文件
/etc/bashrc
/etc/profile
2.练习
[root@localhost03 ~]# vim /etc/bashrc //将别名写入/etc/bashrc的文件中
2 alias xiao='echo xiao'
[root@localhost03 ~]# su - test01 #切用户
[test01@localhost03 ~]$ xiao #测试别名是否可用
[root@localhost03 ~]# xiao #通过root用户测试别名是否可用
1.16.4用户的删和查
一、userdel删除用户
1.格式
userdel [-r] 用户名
添加:-r选项,宿主目录,用户邮件也一并删除
2.练习
[root@localhost03 ~]# id test02 #查看test02用户是否存在
[root@localhost03 ~]# userdel -r test02 #删除test02用户
[root@localhost03 ~]# ls /home/ #查看test02用户的家目录是否一并删除