1.1 用户的基本信息
用户就是系统使用者的身份 ,在系统中用户存储若干串字符+若干个系统配置文件
用户信息涉及到的系统配置文件:
/etc/passwd ##用户信息
用户:密码 :uid:gid:说明:家目录:用户使用的shell
-u : -g: -c : -d : -s
/etc/shadow ##用户认证信息
用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日
/etc/group ##组信息
组名称:组密码:组id:附加组成员
/etc/gshadow ##组认证信息
/home/username ##用户家目录
/etc/skel/.* ##用户骨架文件
注意: /etc/skel/ 这个目录中的所有文件或目录在用户新建的过程中会被复制到用户的家目录里,这个目录中默认存在的隐藏文件是用户的默认配置文件 ,用户家目录里的模版。
/etc/login.defs ##用户默认建立时指认的id
id 参数 用户
-u ##用户uid
-g ##用户初始组id
-G ##用户所有所在组id
-n ##显示名称而不是id数字
-a ##显示所有信息
2.2 用户建立
useradd 参数 用户名字
-u ##指定用户uid
-g ##指定用户初始组信息,这个组必须已经存在
-G ##指定附加组,这个组必须存在
-c ##用户说明
-d ##用户家目录
-s ##用户所使用的shell,/etc/shells记录了用户能使用shell的名字
注意!这个命令需要用超级用户的身份运行
下面展示这个命令的部分截图
监控指令" watch -n 1 'tail -n 4 /etc/passwd /etc/group' "
建立用户hello
建立同时指认用户hello的id为6666
建立同时指认用户hello的初始组为1001
建立同时指认用户hello的附加组为21
建立同时指认用户hello的说明为“hello user
建立同时指认用户hello的shell为/bin/bash
2.3 用户删除
userdel -r 用户名 #-r表示删除用户信息及用户的系统配置
注意!这个命令需要用超级用户的身份运行
2.3 组的建立
groupadd -g 组名字 ##建立组
groupdel 组名字 ##删除组
注意!这个命令需要用超级用户的身份运行
做以上实验的监控命令:watch -n 1 'tail -n 3 /etc/passwd /etc/group ## watch -n 1 代表每隔一秒监控一次
下面展示这个命令的部分截图
监控指令
建立名字为nihao,组id为2222的组
删除上个组
2.4 用户信息更改
usermod 参数 用户
-l ##更改用户名称
-u ##更改uid
-g ##更改gid
-G ##更改附加组
-aG ##添加附加组
-c ##更改说明
-d ##更改家目录指定
-md ##更改家目录指定及家目录名称 -
-s ##更改shell
-L ##冻结帐号
-U ##解锁
注意!这个命令需要用超级用户的身份运行
下面展示这个命令的部分截图
将用户名xiaoxiao更改为nihao
更改用户的id为6666
更改用户的组id为21
更改用户的附加组为1001
添加用户的附加组为72
更改用户说明为“nihao user”
更改家目录指定为/home/Desktop
更改家目录名称为mine,更改家目录指定/mine/Desktop
3. 1 权力下放的概念
在系统中超级用户可以下放普通用户不能执行的操作给普通用户,下放权力的配置文件为:/etc/sudoers
3.2 下放权力的方法
1.超级用户执行visudo进入编辑/etc/sudoers模式
2.格式:
获得权限用户 主机名称 =(获得到的用户身份) 命令
如 ”test desktop 0.example.com=(root) /usr/sbin/useradd“
表示test用户能在desktop0.example.com以超级用户身份执行/usr/sbin/useradd这个命令
下面展示这个命令的部分截图
超级用户执行visudo进入编辑/etc/sudoers模式
在99行写入注释,100行写入命令,则标识student用户可以在localhost在台主机上执行useradd命令
#若不知道主机名用hostname查看#
3.3 执行下放权限命令
sudo 命令 ##如果第一次执行sudo需要输入当前用户密码
若不想输入密码则可在/etc/sudoers中如果设置如下:
test desktop0.example.com=(root) NOPASSWD: /usr/sbin/useradd
##表示在使用sudo命令的时候不需要自己密码
四、用户认证信息的控制
4.1.1 "passwd" 用来修改用户认证信息
##如果是超级用户不许要知道原来密码,直接修改,没密码强度限制
##如果是普通用户需要输入原始密码,密码不能少于8个字符,不能是纯数字,不能是纯字母
4.1.2 相关命令
passwd -S 用户 ##查看用户密码信息
passwd -d 用户 ##删除用户密码
passwd -l 用户 ##冻结帐号密码
passwd -u 用户 ##解锁用户
passwd -e 用户 ##更改密码默认使用天数
passwd -x 用户 ##密码最长有效期
passwd -n 用户 ##密码最短有效期
passwd -w 用户 ##密码过期前警告期
passwd -i 用户 ##密码非活跃天数
passwd --stdin 用户 ##非交互式更改用户密码
例如:
echo westos | passwd --stdin lee #stdin 标准输入 echo 输出 通过管道符将输出转换为输入
passwd 的冻结强度高usermod 一级
4.2 “chage用来修改用户认证信息
chage 参数 用户
-d ##用户密码组后一次修改的时间,如果设定成0,用户登陆系统后必须修改自己的密码
-m ##最短有效期
-M ##最长有效期
-W ##警告期
-I ##用户非活跃天数
-E ##帐号到期日格式 -E "YYYY-MM-DD"
五、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两次使系统自动重新启动