一、关于用户
用户即系统的使用者
在系统中用户存储为若干串字符+若干个系统配置文件,其中,用户的信息涉及到的系统配置文件有(如下将会以root用户为例):
/etc/passwd ##用户信息
以”:“为界,分别对应
用户:密码:uid : gid :说明:家目录:用户所使用的shell
/etc/shadow ##用户认证信息
用户:密码:最后一次修改密码的时间:最短有效期:最长有效期:警告期:非活跃期:账号到期日
/etc/group ##组信息
组名称:组密码:组id : 附加组成员
/etc/gshadow ##组认证信息
/home/username ##用户家目录
/etc/skel/.* ##用户骨架文件(/etc/skel/ 这个目录中的所有文件或目录在用户新建的过程中会被复制到用户的家目录里这个目录中默认存在的隐藏文件是用户的默认配置文件)
二、用户管理
在做以下用户操作时,我们需要对其进行监控,操作如下:
watch -n 1 ‘tail -n 5 /etc/passwd /etc/group'
呈现的监控效果如图所示:
1、用户建立
useradd 会新建用户时,同时会生成一个组;
useradd -u id 用户名 //指定用户uid
命令: useradd -u 1314 linux
效果:
useradd -g 已存在的组id 用户名 //指定用户初始组信息,这个组必须已经存在
命令:useradd -g 21 westos
效果:
useradd -G 用户名 已存在的组名 //指定附加组,这个组必须存在
命令:useradd westos
useradd -G linux westos
效果:
useradd -c '说明内容' 用户名 //用户说明
命令:useradd -c '你好' haha
效果:
useradd -d 目录 用户名 //指定用户的家目录
命令:useradd -d /home/123 xixi
效果:
useradd -s shell的名字 用户名 //新建指定shell的用户,
/etc/shells记录了用户能使用shell的名字
命令:vim /etc/shells
useradd -s /bin/csh lee
效果:
2、用户删除
userdel -r 用户名 //删除用户信息及系统配置
3、组的建立与删除
groupadd仅仅对组操作;
groupadd -g 组名称 //新建组
groupdel 组名称 //删除组
4、用户id信息的查看
id 参数 用户
id -u 用户 //查看用户uid
id -g 用户 //用户初始组id
id -G 用户 //用户所有所在组id
id -nu id //显示某个id 下的用户
id -a 用户 //显示所有信息
5、用户信息的更改
usermod -l //更改用户名称
usermod -u //更改uid
usermod -g //更改gid
usermod -G //更改附加组
usermod -aG //添加附加组
usermod -c //更改说明
usermod -d //更改家目录指定
usermod -md //更改家目录指定及家目录名称
usermod -s //更改shell
usermod -L //冻结账号
usermod -U //解锁
三、用户权利下放
在系统中超级用户可以下放普通用户不能执行的操作给普通用户下放权利配置文件:/etc/sudoers
方法:(1)root超级用户执行visudo 进入编辑/etc/sudoers 模式
(2)在100行附近编辑一条命令:
student desktop0.example.com=(root) /usr/sbin/useradd
用户 主机名称(用hostname查询)
含义: student用户能在这台主机上以超级用户身份执行/usr/sbin/useradd
(3)执行下放权利命令:
切换当前用户为test;
sudo /usr/sbin/useradd test //当第一次执行sudo需要输入当前用户密码
//若在/etc/sudoers中如果设置:
// test desktop0.example.com=(root) NOPASSWD:/usr/sbin/useradd
//表示用户调用sudo命令的时候不需要输入密码
四、用户认证信息的控制
passwd 用来修改用户认证信息
passwd 用户名 //如果是超级用户不需要原来的密码,直接修改,没密码强度限制;
如果是普通用户需要输入原始密码,密码不能少于8个字符,不能是纯数字、纯字母;
图 1 是超级用户修改密码的过程
图 2 是普通用户修改密码的过程
首先,我们监控 ' passwd -S student ' ,进行如下操作:
passwd -S 用户 //查看用户密码信息
passwd -d 用户 //删除用户密码
passwd -l 用户 //冻结账号密码(passwd -l 的冻结程度比usermod -L高,所以我们会发现需要用 2 次usermod -U去解冻 )
passwd -u 用户 //解锁用户
passwd -e 用户 //更改密码默认使用天数
passwd -x 用户 //密码最长有效期
passwd -n 用户 //密码最短有效期
passwd -w 用户 //密码过期前警告期
passwd -i 用户 //密码非活跃天数
passwd --stdin 用户 //非交互式更改用户密码
例如:echo westos | passwd --stbin student
五、root 密码忘记如何解决
1.重新启动系统
2.在系统启动阶段按上下健停止系统系统引导
3.选择启动引导标题,按“E”进行编辑
4.找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项
5.ctrl+x启动设定过后的系统引导条目
6.进入系统后执行chroot /sysroot切换到真实的系统环境
7.passwd root修改超级用户密码
8.建立文件/.autorelabel让系统从新扫描所有文件,回车
9.exit两次使系统自动重新启动