1.用户和组存在的意义
##首先我们要知道Linux系统是一个多用户多任务的分时操作系统,不同的用户在操作时可以互不影响,用户组可以更好的限定组内用户和其他组用户之间的权限,会更加的安全。
2.用户的查看
(1)whoami
##查看当前用户
(2)id student
##查看指定用户的id信息
id -u student
##查看用户的uid
id -g student
##查看用户的gid
id -G student
##查看用户所在的所有的组id
id -n student
##显示用户,所属群组或附加群组的名称
##红线处的含义为不能在默认格式下只显示名称或真实id
3.用户切换
gnome-session-quit --force
##强制注销当前用户(不好看出效果所以不放图片)
su - westos
##切换到用户westos
##su - 中 “-” 标示在用户身份切换时同时切换当前用户的环境
##su - 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要,平级用户切换切换也需要
##注意:每次su切换到其他用户操作之后必须退出,然后再次切换到其他用户,不然多次切换后可能会出现图形错乱
4.用户在系统中的存储方式
(1)/etc/passwd
##用户信息文件,格式如下图
##用户名称:密码:uid:gid:说明:家目录:默认shell
##默认shell的指令有哪些可以查看系统中/etc/shells文件
(2)/etc/group
##用户组信息文件,格式如下图
##组的名字:组密码:组id:组成员
(3)/etc/shadows
##认证信息文件
(4)/etc/skel/.*
##默认开启shell的配置,用户的骨文件
(5)/home/username
##用户的家目录
5.用户管理命令
(1)用户的删除
userdel student
##删除用户但不删除用户的配置文件
userdel -r student
##删除用户并删除用户的配置文件
(2)用户的建立
watch
## 用户信息监控命令
watch -n 1 "tail -n 3 /etc/passwd /etc/group;ls -l /home"
##查看/etc/passwd /etc/group 文件的后3行和 /home下的文件属性,且每1s刷新一次(ctrl+c退出监控)
useradd westos
##建立一个新用户westos
useradd -u 7777 westos
##建立一个用户且指定uid为7777
useradd -g 21 westos
##建立一个用户且指定初始组id为21,但是21这个用户组之前必须存在
useradd -G 21 westos
##建立一个用户且指定附加组id为21,但是21这个附加组之前必须存在
useradd -c "hello" westos
##建立一个用户且指定用户说明为hello
useradd -d /home/lee westos
##建立一个用户且指定家目录为 /home/lee
useradd -s /bin/sh westos
##建立一个用户且指定默认shell 为 /bin/sh
groupadd westos
##建立一个新的用户组westos
groupadd -g 666 westos
##建立一个用户组并指定用户组的id
groupdel westos
##删除用户组westos,不用加-r
6.用户信息的更改
usermod -l yy westos
##把用户名称westos变为yy
usermod -u 7777 westos
##更改用户uid为7777
usermod -g 72 westos
##更改用户的初始组为72
usermod -G 72 westos
##更改用户的附加组72
usermod -aG 21 westos
##添加用户的附加组21
usermod -G " " westos
##删除用户所有附加组的身份
usermod -c "haha" westos
##制定用户的说明文字为haha
usermod -d /home/lee westos
##更改用户家目录的指向
usermod -md /home/lee westos
##更改用户的家目录
usermod -s /bin/sh westos
##更改用户的shell
##用户信息的更改
cat /etc/shells
查看所有的shell类型
##/sbin/nologin
和 /usr/sbin/nologin
这两个shell属于系统用户使用,普通用户使用后无法登入用户使用
usermod -L westos
##冻结用户
usermod -U westos
##解锁用户
7.用户认证消息
/etc/shadows
##记录用户认证信息,格式如下图
将其分为[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 -S student
##查看student用户密码信息
[2]用户密码
passwd westos
##更改westos密码(密码不会显示)
passwd -l westos
##在用户密码前加入“!!”
passwd -u westos
usermod -L westos
##在用户密码前加入“!”
usermod -U westos
##在密码不为空时使用
passwd -d westos
##清空westos密码
##注意:当普通用户想改密码时
(1).必须知道当前用户原始密码
(2).密码不能和帐号名称相似
(3).密码不能是纯数字或纯字母
(4).密码不能是有序的字母和数字的组合
[3]用户密码最后一次被更改的时间
passwd -e westos
##会改变用户最后一次更改密码时间为0
##用户在登陆时会被强制更改密码
chage -d 0 westos
##与上一个命令功能类似
[4]用户密码最短有效期
passwd -n 1 westos
##westos用户在1天之内不能修改密码
chage -m 1 westos
##与上一个命令功能类似
[5]用户密码最长有效期
passwd -x 30 westos
##设定westos在30天内必须改密码
chage -M 30 westos
[6]密码警告期限
passwd -w 2 westos
##密码过期前两天有警告输出
chage -W 2 westos
[7]用户非活跃天数
chage -W 2 westos
##密码过期后仍可登陆系统的天数
chage -W 2 westos
[8]用户到期日
chage -W 2 westos
##westos用户在2018-11-11日会被冻结
[9]##用户自定义列,目前没有启用
8.用户授权
(1)hostname
##查看本台电脑的主机地址
(2)/etc/sudoers
##有关权力下放的文件
vim /etc/sudoers
##通过vim直接编辑文件,但是不提供语法检测
visudo
##通过该命令编辑文件,会提供语法检测
(3)visudo
##进入文本100行左右(尽量规范)
(4)tom localhost=(root) /usr/sbin/useradd
##普通用户 主机名称=(赋予的用户身份) 命令
##此时普通用户tom在主机localhost上会以root身份执行useradd创建普通用户,但是会让tom输入自己的用户密码
tom localhost=(root) NOPASSWD: /usr/sbin/useradd
##此时普通用户tom在主机localhost上会以root身份免密执行useradd命令
(5)su - tom
##登陆student用户,准备测试
useradd hello
##尝试创建普通用户hello,显示没有权限
sudo useradd hello
##调用下放权力文件,成功创建普通用户hello