在系统中用户存储为若干窜字符+若干个系统配置文件
在这一模块中用户身份的切换很重要,用“su - 用户名”来切换用户,并且注意每次切换后进行下一项的实验用“exit”命令退出此用户,否则后面实验的过程中会一直出现错误
用户信息涉及到的系统配置文件:
/etc/passwd ###用户信息
用户:密码:uid:gid:说明:家目录:用户使用的shell
-u -g -c -d -s
/etc/shadow ###用户认证信息
用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日
/etc/group ###组信息
组名称:组密码:组id:附加组成员
/etc/gshadow ###组认证信息
/home/username ###用户家目录
/etc/skel/.* ###用户骨架文件
#注意: /etc/skel/ 这个目录中的所有文件或目录在用户新建的过程中会被复制到用户的家目录里
这个目录中默认存在的隐藏文件是用户的默认配置文件
2.用户管理
监控命令 watch -n 2 'tail -n 3 /etc/passwd /etc/group;ls -l /home/'
1)用户建立useradd
首先,用useradd建立一个linux用户,这个linux的用户有它自己的初始组
如果要改变这个组的uid,gid等需要用“userdel -r 用户名”删除后重新建立
useradd -u ##指定用户uid
useradd -g ##指定用户初始组信息,这个组必须已经存在(在/etc/group中的gid)
useradd -G ##指定附加组,这个组必须存在
(效果看/etc/group中 gid为21后面的linux)
useradd -c ##用户说明
useradd -d ##用户家目录
useradd -s ##用户所使用的shell,/etc/shells记录了用户能使用shell的名字
我建立了两个不同的用户,他们的用户说明和家目录都是取决于你的设定。
2)用户删除
userdel -r 用户名称 ## -r表示删除用户信息及用户的系统配置
3)组的建立
groupadd -g ##建立组
groupdel 组名字 ##删除组
4)用户id信息查看
id 参数 用户
-u ##用户uid
-g ##用户初始组id
-G ##用户所有所在组id
-n ##显示名称而不是id数字
-a ##显示所有信息
提示:-n只有和-G,-g,-u一起的时候能显示出来名称。-n不能单独使用。
5.用户信息更改
usermod 参数 用户
-l ##更改用户名称
-u ##更改uid
-g ##更改gid
-G ##更改附加组
-aG ##添加附加组
-c ##更改说明
-d ##更改家目录指定
-md ##更改家目录指定及家目录名称
-s ##更改shell
-L ##冻结帐号
-U ##解锁
提示:这个命令和useradd不同的是可以在用户建立后,更改用户信息。
以下操作我只截屏了关于我建立的linux用户的信息,这样方便大家做对比,第一张图是我建立linux的初始信息。
usermod -g 更改gid时要从/etc/group中有的组中选择
usermod -aG linux westos ##在linux组中添加附加组westos,-G不能单独使用
3.权力下放(此操作必须使用超级用户执行)
1)在系统中超级用户可以下放普通用户不能执行的操作给普通用户
下放权力配置文件:/etc/sudoers
2)下放权力的方法
*)超级用户执行visudo进入编辑/etc/sudoers模式
*)格式:
获得权限用户 主机名称=(获得到的用户身份) 命令
test desktop0.example.com=(root) /usr/sbin/useradd
test用户能在desktop0.example.com以超级用户身份执行/usr/sbin/useradd
此添加尽量在100行后操作
切换到普通用户,创建用户,显示没有权限
3)执行下放权限命令
sudo 命令 ##如果第一次执行sudo需要输入当前用户密码
在/etc/sudoers中如果设置如下:
test desktop0.example.com=(root) NOPASSWD: /usr/sbin/useradd
表示用户调用sudo命令的时候不需要自己密码,如果想设定用户使用密码登陆使用PASSWD
下面切换到普通用户做实验
4.用户认证信息的控制
1)"passwd" 用来修改用户认证信息
passwd westos 如果是超级用户不许要知道原来密码,直接修改,没密码强度限制
如果是普通用户需要输入原始密码密码不能少于8个字符,不能是纯数字,不能是纯字母
监控 watch -n 1 passwd -S 文件
watch -n 1 tail -n 1 /etc/shadow
监控实验如下:
linux:密码:
passwd -S 用户 ##查看用户密码信息
passwd -d 用户 ##删除用户密码
passwd -l 用户 ##冻结帐号密码
passwd -u 用户 ##解锁用户
passwd -x 用户 ##密码最长有效期
passwd -n 用户 ##密码最短有效期
passwd -w 用户 ##密码过期前警告期
passwd -i 用户 ##密码非活跃天数(缓冲天数)
passwd --stdin 用户 ##非交互式更改用户密码
例如:
echo westos(新密码) | passwd --stdin linux(用户名)
注意:passwd -l 冻结强度要比usermod -U 冻结强度高
chage 参数 用户
-d ##用户密码组后一次修改的时间,如果设定成0,用户登陆系统后必须修改自己的密码
-m ##最短有效期
-M ##最长有效期
-W ##警告期
-I ##用户非活跃天数
chage -E ##帐号到期日格式 -E "YYYY-MM-DD" 文件 date -d +50days (50天后的日期)
####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两次使系统自动重新启动