初学Linux之用户的管理与权力下放

1用户的管理

1.1 用户存在的意义:在Linux系统中,用户存在的意义就在于区分权限,不同的用户之间的权限
1.2 用户组的意义:用户组存在的意义在于不同用户之间可以共享权限
1.3 用户的查看
(1)查看当前用户
whoami  #查看当前用户
(2) 系统中用户的查看
id student  #查看指定用户student的id信息,包括uid,gid,group(包括附加组)
id -u student   #查看用户的uid
id -g student   #查看用户的gid
id -G student   #查看用户所在的所有组的id
id -n &studentemsp;  #显示名字而不显示id数字
初学Linux之用户的管理与权力下放
1.4 用户及用户组在系统中的存储方式
1.4.1 用户存储方式:/etc/passwd 为用户信息文件
包括:用户名称:密码:uid:gid:说明:家目录:默认shell
1.4.2 用户组存储方式:/etc/group为用户组信息文件
包括:组的名字:组密码:组id:组成员
注:/etc/skel/.* 为默认开启shell的配置,用户的骨文件

初学Linux之用户的管理与权力下放
1.5 用户管理命令

1.5.1 用户的建立:
useradd westos #建立用户westos
useradd -u 66 westos #指定用户uid
useradd -g 88 westos #指定用户初始组id,“21用户组必须是存在的”
useradd -G 88 westos ##指定用户的附加组id “21用户组必须存在”
useradd -c “hello” westos #指定用户的说明,为当用户登陆时登陆页面的显示文字
useradd -d /home/ly westos #指定用户的家目录
useradd -s /bin/sh westos #指定用户的默认shell
1.5.2 用户组的建立
groupadd #建立用户组
groupadd -g 666 westos #建立用户组并指定用户组的id
groupdel #删除用户组
注:建立用户时,读取/etc/login.defs 文件内容确定规则。例如可以通过读取并修改该文件,改变建立用户时初始uid,gid

1.5.3 用户的删除 userdel
userdel student #删除用户但不删除用户的配置文件
userdel -r student #删除用户并删除用户的配置文件
1.5.4 更改用户信息 usermod
usermod -l ly westos #更改用户westos的名称为ly
usermod -u 666 westos #更改用户uid
usermod -g 66 westos #更改用户的初始组
usermod -G 88 westos #更改用户的附加组,只保留最后一个更改的附加组
usermod -aG 888 westos #添加用户的附加组,所有更改的附加组都存在
usermod -G “” westos #删除用户所有附加组的身份
usermod -c “hahahah” westos #指定用户说明文字
usermod -d /home/ly westos #只更改用户家目录的指向
usermod -md /home/ly westos #更改用户家目录
usermod -s /bin/sh westos #更改用户的shell
usermod -L westos #冻结用户
usermod -U westos #解锁用户
示例:
1.先建立用户信息监控命令:watch -n 1 “tail -n 3 /etc/passwd /etc/group;ls -l /home/”,该命令作用为使引号内的命令每1秒执行一次
2.以修改用户家目录与家目录指向为例,其他信息修改类似:
usermod -d /home/ly westos,可以看到/etc/passwd中westos家目录一项为/home/ly,但是在ls -l /home/ 下,westos用户信息仍然为/home/westos
usermod -md /home/ly westos,可以看到/etc/passwd中westos家目录一项为/home/ly,在ls -l /home/ 下,westos用户信息也为/home/ly
初学Linux之用户的管理与权力下放
初学Linux之用户的管理与权力下放
1.6 用户认证信息
/etc/shadow #记录用户认证信息,每项以冒号隔开
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 -S westos 可以查看westos用户密码信息

1.7 修改用户认证信息
1.7.1 修改用户密码
passwd westos #更改westos密码
passwd -l westos #在用户密码前加入“!!”,也就是加密
passwd -u westos #解密
usermod -L westos #在用户密码前加入“!”
usermod -U westos #在密码不为空时使用
passwd -d westos #清空westos密码
注意:普通用户改密码时:必须知道当前用户原始密码,密码不能和帐号名称相似,密码不能是纯数字或纯字母,密码不能是有序的字母和数字的组合。passwd -l westos 需要用两条usermod -U westos来解密

1.7.2 修改用户密码最后一次被更改的时间
passwd -e westos #改变用户最后一次更改密码时间为0,用户在登陆时会被强制更改密码
chage -d 88 westos #变用户最后一次更改密码时间为88

1.7.3 用户密码最短有效期
passwd -n 1 westos #westos用户在1天之内不能修改密码
chage -m 1 westos

1.7.4 用户密码最长有效期
passwd -x 30 westos #设定westos在30天内必须改密码
chage -M 40 westos
1.7.5密码警告期限
passwd -w 2 westos #密码过期前两天有警告输出
chage -W 2 westos
1.7.6 用户非活跃天数
passwd -i 1 westos #密码过期后仍可登陆系统的天数
chage -I 1 westos
1.7.7 用户到期日
chage -E 2018-11-11 westos #westos用户在2018-11-11日会被冻结
示例:
1.先建立用户认证信息监控命令:watch -n 1 tail -n 3 /etc/shadow
2.以修改密码最长有效期为例,其他信息修改类似:
初学Linux之用户的管理与权力下放

2 用户授权:让普通用户可以执行超户才可以执行的命令

1. 下放方式:
(1) 修改权力下放文件 /etc/sudoers:此文件可以用vim直接编辑,但是不提供语法检测,即使错了也不知道
(2) visudo编辑此文件,visudo是个命令,专门打开文件的命令,是提供语法检测的
2.下放过程:
(1) visudo 打开文件
(2) 在100行左右添加想要下放的命令
格式为:用户 主机名称=(得到的用户身份) 命令
(3) sudo 命令 目标 使用sudo命令执行文件,使用户可以使用该命令
示例:使用户ly拥有添加用户的权力,用户ly建立用户haha
初学Linux之用户的管理与权力下放
初学Linux之用户的管理与权力下放

注:ly localhost=(root) NOPASSWD: /usr/sbin/useradd 用户ly可以在localhost主机以root用户身份免密执行useradd

End