1.用户存在的意义
- 安全
- 限制权力
用限制权力来保证系统安全是系统安全机制的一部分。
2.组存在的意义
- 共享
- 开放权力
通过建立用户组,或者控制新建用户所在的用户组,可以控制用户访问系统的权限。
3.用户的查看
(1)查看当前用户
whoami
(2)系统中的用户查看
id [参数]... 用户 ##查看指定用户的id信息
- -u ##查看用户的uid
- -g ##查看用户的gid
- -G ##查看用户所在的所有组的id
- -n ##显示名字而不显示id数字,需要搭配其他参数
4.用户切换
gnome-session-quit --force ##注销当前用户,然后再登录其他用户
su - 用户名 ##切换用户
注:su - 中“-”表示用户身份切换的同时切换当前用户的环境。
su - 执行时高级用户切换到低级用户不需要输入密码,低级用户切换到高级用户需要输入密码。平等级别的用户切换也需要输入密码。
每次su切换到其他用户操作后必须退出,然后再次切换到其他用户。
5.用户在系统中的存储方式
- 用户信息文件--------/etc/passwd
用户名:密码:uid:gid:说明:家目录:默认shell ##默认shell指定的有哪些,可以从/etc/shells文件中查看
- 用户组信息--------/etc/group
组的名字:组密码:组id:组成员
- 认证信息文件--------/etc/shadow
- 默认开启shell的配置,用户的骨文件-------/etc/skel/.*
- 用户的家目录----------------------------------/home/username
6.用户管理命令
(1)用户的建立
useradd 用户名 ##建立用户时
/etc/login.defs ##创建用户时的默认文件,可从中更改默认设置,例如uid,gid
cat /etc/shells ##查看主机中所有的shell
- useradd -u 1111 用户名 ##指定用户uid
- useradd -g 21 用户名 ##指定用户初始组id,“21”用户组必须存在
- useradd -G 19 用户名 ##指定用户的附加组id,“19”用户组必须存在
- useradd -c “mastor” 用户名 ##指定用户的说明,说明内容需用引号包住
- useradd -d /home/mk 用户名 ##指定用户的家目录
- useradd -s /bin/sh 用户名 ##指定用户的默认shell
注:若建立用户时不设置任何参数,则全部选用默认。
(2)用户的删除
userdel 用户名 ##删除用户但不删除用户的配置文件
userdel -r 用户名 ##删除用户并删除用户的配置文件
(3)用户组的建立
groupadd 组名 ##建立用户组
groupadd -g 1111 组名 ##建立用户组并指定用户组的id
(4)用户组的删除
groupdel 组名 ##删除用户组
(5)监控命令
watch [参数] 被监控文件 ##若被监控的文件不只一个,可用引号将其包住
(6)更改用户信息
usermod [参数]... 用户名
参数:
-l ##更改用户名
-u ##更改uid
-g ##更改gid
-G ##更改附加组
-G 21,27,... ##添加多个附加组
-G “” ##清空附加组
-aG ##在原有的附加组上添加
-c “...” ##更改说明
-c '' ##清空说明
-d /home/me ##更改家目录的指向,不改变原家目录名称
-md /home/me ##更改家目录,更改家目录文件名称
-s /bin/sh ##更改用户的shell ,
-L ##冻结用户,在此之前应先给用户设置密码
-U ##解锁用户
7.用户认证信息
/etc/shadows #记录用户认证信息
此文件一共有九列:
用户名称;用户密码(!!‘冻结用户’,!冻结强度的低);用户密码最后一次被更改的时间(今天-1970.1.1.);用户密码最短有效期(此期间不能更改密码);用户密码最长有效期;密码警告期限;用户非活跃天数;用户到期日;用户自定义列,目前没有启用
wop :!!: 17889 : 0 : 99999 : 7 : : :
[1] [2] [3] [4] [5] [6] [7] [8] [9]
[1] wop 用户名称
[2] !! 用户密码
用户的加密字符串,默认用的加密方式为sha512对称加密
如果加密字符串前出现“!”表示用户被冻结
[3] 17889 用户密码最后一次呗更改的时间
此时间是从1970.1.1开始计算的
[4] 0 用户密码最短有效期
如果此位设有数字,则在此数字规定的天数期间不能更改密码
[5] 99999 用户密码最长有效期
用户必须在此期间内更新密码,如果超时用户会被冻结
[6] 7 密码警告期限
在过期前制定天数内会发送警告信息给用户
[7] 用户非活跃天数
此位默认为空,如果设定数值,那么密码最长有效期过后仍然可以使用的天数
[8] 用户到期日
默认为空,表示用户一定会被冻结的时间点
[9] 用户自定义列, 目前未启用
8.用户密码
passwd -S wop #查看wop用户密码信息
passwd wop ##更改wop密码
passwd -l wop ##在用户密码前加入“!!”
passwd -u wop
passwd -L wop ##在用户密码前加入“!”
passwd -U wop ##在密码不为空时使用
passwd -d wop ##清空wop密码
注意:
普通用户改密码时
1.必须知道当前永久原始密码
2.密码不能和帐号名称相似
3.密码不能是纯数字或纯字母
4.密码不能是有序的字母和数字组合
用户密码最后一次被更改时间
passwd -e wop #会改变用户最后一次更改密码时间为0
#用户在登陆时会被强制更改密码,参数后加 -1 可以将改为空值
chage -d 0 wop # 两个命令功能类似
用户密码最短有效期
passwd -n 1 wop #wop用户在一天内不能修改密码
chage -m 1 wop
用户密码最长有效期
passwd -x 30 wop #设定wop在30天内必须修改密码
chage -M 40 wop
密码警告期限
passwd -w 2 wop #密码过期前两天有警告输出
chage -W 2 wop
用户非活跃天数
passwd -i 1 wop #密码过期后仍可登陆系统的天数
chage -I 1 wop
用户到期日
chage -E 2019-1-25 wop #wop用户在2019-1-25日会被冻结
9.用户授权
(1)权力下放文件为/etc/sudoers
此文件可以用vim直接编辑,但是不提供语法检测,也可以使用visudo编辑此文件,visudo命令提供语法检测
(2)下放方式
visudo
100行左右插入下放的权限
用户 | 主机名称=(得到的用户身份) | 命令 | 注释 |
wop | localhost=(root) | /usr/sbin/useradd | ##wop用户可以在localhost主机上以root用户的身份执行useradd命令 |
wop | localhost=(root) | NOPASSWD: /usr/sbin/useradd | ##wop用户可以在localhost主机上以root用户的身份免密执行useradd命令 |
授权多个权限时,中间用逗号隔开
免密授权:在路径前加‘NOPASSWD: ’ 注:后面有空格
(3)测试
su - wop
sudo useradd hello