linux用户管理
一、用户的查看
1、whoami ###查看当前用户
2、id username ####查看指定用户信息
参数:-u ##查看用户的uid
-g ##查看用户的gid
-G ##查看用户所在组的组id
-n ##显示名字而不显示编号
3、用户切换
gnome-session-quit ###注销当前用户
:—force
su - ‘用户名称’ ##在shell中命令行切换用户
su - :中的‘-’表示在用户身份切换时同时切换用户的环境
注:‘su - ’执行时高权限用户切换到低权限用户时不需要密码,低权限切换到高权限或者平级权限用户需要密码;每次执行命令切换到其他用户操作后必须退出,然后再切换到其他用户(root用户切换到所有用户不需要密码)。
二、用户在系统中的存储方式
/etc/passwd ##用户信息文件
以表格的形式存在:
1 root ###用户名
2 x ###表示密码(以加密的形式保存在/etc/shadows文件中)
3 0 ###表示用户的uid
4 0 ##表示用户的gid
5 root ####表示用户的说明
6 /root ####表示用户的家目录
7 /bin/bash ####表示用户的shell的版本
注:位与位之间用‘:’隔开
/etc/group
1 root ###用户名
2 x ####组密码(以加密的形式存放在/etc/gshadow中)
3 0 ####gid
4 空 ###组中的用户
/etc/shadow
1 ccc ###用户名
2 上图中以’666'开头以’gXz.'结尾的编码 ###用户密码(加密后的显示)
3 18088 ####用户的密码最后一次修改密码的日期(从1970年1月1日开始计算的累计天数)
4 0 ####用户密码最短有效期;如果此密码设定数字,那么在此数字范围的天数内是不能修改用户密码的
5 99999 #####用户密码的最长有效期
6 7 ####用户密码过期前的告警时间
7 空 #####用户非活跃天数;密码过期后用户仍然可以使用的天数
8 空 ####默认为空,用户账号到期日;设定到期时间,用户到期后会被冻结,
9 空 ###用户自定义列,未启用
/etc/gshadow
1 root ###用户名
2 空 ####加密组密码
3 空 ####组管理员
4 空 ####组内用户
/home/username ###用户家目录
三、用户的管理
用户信息监控命令:
watch -n 1 ‘tail -n 3 /etc/passwd /etc/group ; ls -l /home’
上图为命令输入后的显示界面
1、用户的建立
useradd ‘用户名称’ ###建立用户
useradd aaa ###建立默认用户aaa,默认用户的uid,gid,groups的编号名称一致家目录的名称也与用户名一致
useradd -u 2222 ccc ##新建用户ccc并指定用户的uid
useradd -g 2002 aaa ###指定用户的初始组id,切该用户组必须存在
useradd -G 3000 aaa ###指定用户的附加组id,该用户组必须存在
useradd -c ‘hahaha’ aaa ###指定用户的说明
useradd -d /etc/bbb tom ##指定用户的家目录
useradd -s /bin/sh aaa ##指定用户默认的shell
注 : 建立用户时,读取/etc/login.defs 文件内容确定规则
2、删除用户
userdel 用户名
userdel aaa ##删除aaa用户但不能删除用户配置信息
userdel -r aaa ###删除aaa用户并删除用户的配置文件。
删除前:
删除后:
3、用户组的建立
groupadd 组名称 ###建立用户组
groupadd ccc ###建立用户组ccc
groupadd -g 12345 ddd ###建立用户组ddd并指定用户的组id为12345(-g表示指定用户组id)
4、用户组的删除
groupdel 组名称 ###删除用户组
5、用户信息的修改
注:新建用户aaa aaa为新建默认用户uid,gid,groups的编号名称一致家目录的名称也与用户名一致
usermod -l 新名称 原用户名称 ###更改用户的名称
usermod -u 2222 ccc ####更改用户的uid
usermod -g caiwu ccc ###更改用户的初始组,该组必须存在
usermod -G 0 ccc ###更改用户的附加组,该用户组必须存在(-G会覆盖已有的附加组成员)
usermod -aG 3002 ccc ###追加用户的附加组 ,用户组必须存在
usermod -G ‘’ ccc ###删除用户所有附加组的身份
usermod -c ‘hello’ ccc ##更改用户的说明
usermod -d /home/ccc ccc ###更改用户家目录的指向
usermod -md /home/ccc ccc ###更改用户家目录
usermod -s /bin/sh ccc ###更改用户的shell,默认用户shell版本为bash
usermod -L ccc ###冻结用户、锁定用户
在用户加密文件中密码项前加!,表示客户密码已经锁定
usermod -U ccc ###解锁用户(在用户密码不为空时使用)
在用户加密文件中密码项前去掉!,表示客户密码已经解锁
6、用户信息的认证
passwd -S ccc ###查看tom用户密码状态
passwd ccc ###更改用户ccc的密码
注:root用户修改密码无限制
普通用户改密码时
1、必须知道当前用户的原始密码
2、密码不能和账号名称相似
3、密码不能是有序的数字或者有序的字母
4、密码如果是纯数字或者纯字母要大于8位
passwd -l ccc ###在用户密码前加’!!'表示锁定该账号
passwd -u ccc ###
passwd -d ccc ###清空tom的密码
passwd -e ccc ###立即使用户ccc的密码过期,下次登录时强制修改密码。
passwd -n 1 ccc ###用户密码最短有效期
passwd -x 1000 ccc ###用户密码最长有效期
passwd -w 300 ccc ###加密告警期
passwd -i 3 ccc ####用户非活跃天数(用户密码过期后可登录天数)
7、修改用户密码状态
‘chage -d’=‘passwd -e’ ###立即使用户ccc的密码过期,下次登录时强制修改密码。
‘chage -m’=‘passwd -n’ ###用户密码最短有效期
‘chage -M’=‘passwd -x’ ###用户密码最长有效期
‘chage -W’=‘passwd -w’ ###加密告警期
‘chage -I’=‘passwd -i’ ####用户非活跃天数(用户密码过期后可登录天数)
chage -E 2019-7-16 ccc ####用户密码失效时间 (从1970-1-1开始累计天数)