用户与组管理
##################
用户就是系统使用者的身份
在系统中用户存储为若干窜字符+若干个系统配置文件
用户信息涉及到的系统配置文件:
/etc/passwd ###用户信息
用户:密码:uid:gid:说明:家目录:用户使用的shell
head -n 3 cat /etc/passwd
/etc/shadow ###用户认证信息
用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日
/etc/group ###组信息
组名称:组密码:组id:附加组成员
/etc/gshadow ###组认证信息
/home/username ###用户家目录
/etc/skel/.* ###用户骨架文件
##################
####2.用户管理####
##################
1.用户建立
useradd
参数
用户名字
-u
##指定用户uid
-g
##指定用户初始组信息,这个组必须已经存在
-G
##指定附加组,这个组必须存在
-c
##用户说明
-d
##用户家目录
-s
##用户所使用的shell,/etc/shells记录了用户能使用shell的名字
命令及截图如下:
useradd -u 666 westos //指定用户组为666
useradd -g users westos //指定用户的初始组为users,此用户只有一个组
useradd -G 21 westos //添加用户的附加组,此时用户有两个组
useradd -d /home/zzc westos //指定用户的目录
useradd -G "21,72" westos //指定用户多个附加组,初始组依然存在
useradd -s /bin/tcsh westos //指定用户的shell名字
cat /etc/shells //查看shell数量及名称
useradd westos;echo westos|passwd --stdin westos //创建用户并设置用户密码为westos
2.用户删除
userdel -r
用户名称 -r表示删除用户信息及用户的系统配置
userdel -r westos //删除用户及用户相关的所有信息
3.组的建立
groupadd
-g
##建立组
grouadd -g 666 westos //建立组并指定组ID为666
groupdel
组名字
##删除组
groupdel westos
作以上实验的监控命令:
watch -n 1 'tail -n 3 /etc/passwd /etc/group;echo ====;ls -l /home;echo ===;ls -l /mnt'
4.用户id信息查看
id
参数
用户
-u
##用户uid
-g
##用户初始组id
-G
##用户所有所在组id
-n
##显示名称而不是id数字
-a ##显示所有信息
命令及截图如下:
id -a westos //列出westos所有信息id -u westos //列出用户uid
id -g westos //列出用户的组ID
id -G westos //列出用户附加组ID
id -gn westos //列出用户的组名称
id -Gn westos //列出用户的附加组名称
5.用户信息更改
usermod
参数
用户
-l
##更改用户名称
-u
##更改uid
-g
##更改gid
-G
##更改附加组
-aG
##添加附加组
-c
##更改说明
-d
##更改家目录指定
-md
##更改家目录指定及家目录名称
-s
##更改shell
-L
##冻结帐号
-U ##解锁
命令及截图如下:
usermod -l westos student //把student用户名称更改为westosusermod -u 72 westos //把用户的uid更改为72
usermod -G users westos //给westos用户添加附加组users
usermod -c "only zzc use" westos//给用户westos添加说明
usermod -md /home/zzc westos//给用户westos更改家目录
usermod -s /bin/tcsh westos //给用户westos更改bash
######################
####3.用户权力下放####
######################
1.在系统中超级用户可以下放普通用户不能执行的操作给普通用户
下放权力配置文件:/etc/sudoers
2.下放权力的方法
*)超级用户执行visudo进入编辑/etc/sudoers模式
*)格式:
获得权限用户
主机名称=(获得到的用户身份)命令
test
zzc=(root)/usr/sbin/useradd
test用户能在zzc以超级用户身份执行/usr/sbin/useradd
3.执行下放权限命令
sudo
命令
##如果第一次执行sudo需要输入当前 -G 用户密码
在/etc/sudoers中如果设置如下:
test desktop0.example.com=(root) NOPASSWD: /usr/sbin/useradd
表示用户调用sudo命令的时候不需要自己密码
useradd westos //添加用户
visudo //编辑sudoers文件
westos server8.example.com=(root) NOPASSWD: /usr/sbin/useradd //赋予westos等同与root的/usr/sbin/useradd 执行权限,同时执行时不需要密码
sudo useradd redhat //使用westos创建redhat用户
############################
####4.用户认证信息的控制####
############################
chage 参数
用户
-d
##用户密码组后一次修改的时间,如果设定成0,用户登陆系统后必须修改自己的密码
-m
##最短有效期
-M
##最长有效期Untitled Folder
-W
##警告期
-I
##用户非活跃天数
-E
##帐号到期日格式 -E "YYYY-MM-DD"
chage -d 0 westos //强制将westos的用户密码组后一次修改的时间设置为0,用户登陆时需要重新修改密码
//对账户的最小有效期、最大有效期、警告天数、用户非活跃天数、帐号到期日进行设置
//此部分在维护中应用非常多,一定要多多进行练习
chage -m 0 -M 30 -W 7 -I 10 -E "2017-8-5" westos
root密码忘记
1.重新启动系统 restart
2.在系统启动阶段按上下健停止系统系统引导
3.选择启动引导标题,按“E”进行编辑
4.找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项
删多了时候 安esc 推出 重新进入 ## 终止启动
5.ctrl+x启动设定过后的系统引导条目
6.进入系统后执行chroot /sysroot切换到真实的系统环境
7.passwd root修改超级用户密码
8.建立文件/.autorelabel让系统从新扫描所有文件
9.exit两次使系统自动重新启动