一、用户管理
-
用户存在的意义:
系统用户即系统的使用者,用户管理是对文件进行管理,用户的存在是为回收权力。 -
组存在的意义:
组的存在是为了共享权力,组和用户是两个不同的机制。 -
组的分类:
初始组 用户出生时就加入的组 附加组 用户后期加入的组
二、用户的查看
-
查看当前用户:
whoami ##查看当前用户 -
系统中用户的查看:
id 用户名 查看指定用户id信息 id -u 用户名 查看用户的uid(用户出生时就有的id) id -g 用户名 查看用户的gid(用户的初始组) id -G 用户名 查看用户所在的所有组的id(包含用户的初始组和附加组) id -n 用户名 显示名字而不显示id数字(和-G一起使用可以查看用户的所有组的名字)
三、用户切换
- 注销用户,重新登陆
gnome-session-quit ##注销当前用户,重新登陆。
gome-session-quit --force ##注销当前用户不提示,重新登陆。
- 在用其他用户登陆:
su - 用户名称
注意:
(1) su - 中 “-” 会改变当前用户的环境和身份,不加‘-’环境不变,身份变了
(2) su - 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要,平级用户切换切换也需要
(3) 每次su切换到其他用户操作之后必须按exit退出,然后再次切换到其他用户,多层次打开容易出错,是不规范操作。
四、用户在系统中的存储方式
-
/est/passwd
用户信息文件
用户名称 : 密码 : uid : gid : 说明 : 家目录 : 默认sheleg: vim /etc/passwd(可查看用户信息文件)
注意:默认shell的指定有哪些可以查看系统中/etc/shells文件
-
/etc/group
用户组信息文件
组的名字 : 组密码 : 组id : 组成员
-
/etc/skel/.*
默认开启shell的配置,用户的骨文件
-
/home/username
用户的家目录
五、用户管理命令
1.用户的删除
userdel student ####删除用户但不删除用户的配置文件
userdel -r student ####删除用户并删除用户的配置文件
userdel student ###删除用户但不删除用户的配置文件:
userdel -r student ####删除用户并删除用户的配置文件
2. 用户建立
用户信息监控命令:
watch -n 1 "tail -n 3 /etc/passwd /etc/group ;ls -l /home"
useradd 用户名 | 建立用户,建立用户时,读取/etc/login.defs文件内容确定规则 |
---|---|
useradd -u 8888 westos | 指定用户id |
useradd -g 21 westos | 指定用户初始组id,“21是用户组必须存在的” |
useradd -G 21 westos | 指定用户的附加组id,“21是用户组必须存在的” |
useradd -c “hello” westos | 指定用户的说明 |
useradd -d /home/lee westos | 指定用户的家目录 |
useradd -s /bin/sh westos | 指定用户的默认shell |
groupadd 用户组名 | 建立用户组 |
---|---|
groupadd -g 888 westos | 建立用户组并指定用户组的id |
groupdel 用户组名 | 删除用户组 |
注意:
(1) watch 查看命令当前的状态,进入之后ctrl+c退出
(2) watch date 查看时间 watch -n 1 每秒更新一次
(3) 同时监控多个命令时可以用" “将watch -n 1后的命令括起来,” "里的命令可以用;隔开
-
更改用户信息
usermod -l 新名称 westos 更改用户的名称 usermod -u 6666 westos 更改用户uid usermod -g 21 westos 更改用户的初始组 usermod -G 21 westos 更改用户的附加组 usermod -aG 72 westos 添加用户的附加组 usermod -G “” westos 删除用户所有附加组的身份 usermod -c “hahahaha” westos 指定用户说明文字 usermod -d /home/lee westos 更改用户家目录的指向 usermod -md /home/lee westos 更改用户家目录 usermod -s /bin/sh westos 更改用户的shell usermod -L westos 冻结用户 usermod -U westos 解锁用户
usermod -l 新名称 westos ####更改用户的名称
usermod -u 6666 westos ####更改用户uid
usermod -G 21 westos ####更改用户的附加组
usermod -aG 72 westos ####添加用户的附加组
usermod -G "" westos ####删除用户所有附加组的身份
usermod -c "hahahaha" westos ####指定用户说明文字
usermod -d /home/lee ####更改用户家目录的指向
usermod -s /bin/sh ####更改用户的shell
六、用户认证信息
/etc/shadows ####记录用户认证信息
westos:!!:17895:0:99999:7: : :
[1] [2] [3] [4] [5] [6] [7] [8][9]
此文件一共有九列:
[1] westos (用户名称)
[2] !! (用户密码)
用户的加密字符串,默认用的加密方式为sha512对称加密,如果加密字符串前出现"|",那么用户被冻结
[3] 17895 (用户最后一次被更改的时间)
此时间计算是从1970-1-1开始计算的累计天数
[4] 0 (用户密码最短有效期)
如果此位有设定数字,那么在此数字范围内的天数内是不能修改用户密码的
[5] 99999 (用户密码最长有效期)
用户必须在此有效期内更新密码,如果超时会被冻结
[6] 7 (密码警告期限)
在过期前制定天数内会发送警告信息给用户
[7] (用户非活跃天数)
此位默认为空,如果设定数值,那么在密码最长有效期过后仍然可以使用的天数
[8] (用户到期日)
默认为空,表示帐号一定会被冻结的时间点
[9]
用户自定义列,目前没有启用
用户密码:
passwd westos | 更改westos密码 |
---|---|
passwd -l westos | 在用户密码前加入"!!" |
passwd -u westos | 取消“!!” |
passwd -L westos | 在用户密码前加入"!" |
passwd -U westos | 在用户不为空时使用 |
passwd -d westos | 清空westos密码 |
passwd -S westos | 查看westos用户密码信息 |
注意:普通用户修改密码时
(1)必须知道当前用户原始密码
(2)密码不能和帐号名称相似
(3)密码不能是纯数字或纯字母
passwd westos ####更改westos密码
passwd -l westos ####在用户密码前加入"!!"
passwd -u westos ####取消"!!"
passwd -d westos ####清空westos密码
passwd -S westos ####查看westos用户密码信息
用户密码最后一次被更改的时间
passwd -e westos ###会改变用户最后一次更改密码时间为0
###用户在登陆时会被强制更改密码
chage -d 0 westos ###两个命令功能相似
用户密码最短有效期
passwd -n 1 westos ####设定westos在1天内不能修改密码
chage -m 1 westos
用户密码最长有效期
passwd -x 30 westos ####设定westos在30天内必须改密码
chage -M 40 westos
密码警告期限
passwd -w 2 westos ####密码过期前两天有警告输出
chage -W 2 westos
用户非活跃天数
passwd -i 1 westos ####密码过期后仍可登陆系统的天数
chage -I 1 westos
用户到期日
chage -E 2018-11-11 westos #####westos用户在2018-11-11日会被冻结
七、用户授权
- 权力下放文件为/etc/sudoers,此文件可以用vim直接编辑,但是不提供语法检测,也可使用visudo编辑此文件,visudo命令是提供语法检测的,也可以用hostname命令查看当前主机的名称
hostname ##查看主机名
- 下方方式:
(1) * visudo 100行左右
(2) 用户 主机名称=(得到的用户身份) 命令
(3) tom localhost=(root) /usr/sbin/useradd ####tom用户可以在localhost主机以root用户身份执行useradd命令
(4) tom localhost=(root) NOPASSWD: /usr/sbin/useradd ####tom用户可以在localhost主机以root用户身份免密执行useradd命令
3. 测试:
su - hhhh
sudo useradd jjj