一、用户和组的相关操作及意义
用户的意义–保证系统的安全;回收限制权力
用户组的意义–开放共享权力
1.用户的查看
whoami ##查看当前用户
id + 用户名 ##查看指定用户id信息
id -u ## 用户uid
id -g ##查看用户gid,初始组
id -G ##查看用户所在所有组(附加组)
id -n ##显示名字而不显示id
id -nG ##所在组的所有名字,包括附加组
2.用户在系统中的存储方式
(1)用户信息文件:/etc/passwd
格式: 用户名称:密码:uid:gid:说明:家目录:默认shell(用户和系统交互时用到的shell)
例: student:x(占位符):6666:2530(不能超过6万,即2^32):hello:/home/westos:/bin/bash
注:输入cat /etc/shells,可以查看系统默认shell的指定有哪些
/sbin/nologin 和 /usr/sbin/nologin ##不提供交互界面
(2)用户组信息文件: /etc/group
格式: 组的名字:组密码:组id:组成员
(3)用户认证信息文件: /etc/shadows
/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用户密码信息
监控/etc/shadow配置文件
命令: watch -n 1 tail -n 3 /etc/shadow
用户密码最后一次被更改的时间:
passwd -e dzh ##会改变用户最后一次更改密码时间为0
##用户在登陆时会被强制更改密码
chage -d 0 dzh ##两个命令功能类似
用户密码最短有效期:
passwd -n 1 dzh ##dzh用户在一天之内不能修改密码
chage -m 1 dzh
用户密码最长有效期:
passwd -x 30 dzh ##设定dzh用户在30天内必须改密码
chage -M 40 dzh
密码警告期限:
passwd -w 2 dzh ##密码过期前两天有警告输出
chage -W 2 dzh
用户非活跃天数
passwd -i 1 dzh ##密码过期后仍可登陆系统的天数
chage -I 1 dzh
用户到期日
chage -E 2019-11-11 dy ##dy用户在2019-11-11日会被冻结
(4) 默认开启shell的配置,用户的骨文件:/etc/skel/.*
(5)用户的家目录: /home/username
3.用户的切换
(1)gnome-session-quit ##注销当前用户再用其他用户登陆
gnome-session-quit --force ##注销当前用户不提示
(2)su - 用户名称 ##切换用户
此命令中,“-”表示在用户身份切换时同时切换当前的用户的环境,不加 “- ”只切换身份不切换环境。
高级–>低级:不需要密码
低级–>高级:需要密码
平级切换:需要密码
注意:每次切换到其他用户操作之后必须退出,然后再次切换到其他用户,保持最多两层。
4.用户管理命令
(1)watch date ##监测时间
watch -n 1 date ##监测时间每一秒刷新一次
用户信息监控命令:
watch -n 1 ‘tail -n 3 /etc/passwd /etc/group;ls -l /home/’
(2)用户建立
useradd username ## 建立用户,建立时读取/etc/login.defs文件内容确定规则
useradd -u 2222 username ##指定用户uid
useradd -g 21 username ##指定用户初始组id,“21的用户组必须存在”
(3)用户的删除:uesrdel
userdel username ##删除用户但是不删除用户的配置文件
userdel -r username ##删除用户并删除用户的配置文件
(4)用户组建立
groupadd usergroup ##建立用户组
groupadd -g 6666 usergroup ##建立用户组并指定用户的ID
groupdel usergroup ##删除用户组
useradd -G 21 username ## 指定用户的附加组id,“21用户组必须存在”
useradd -c “hello” username ##指定用户的说明
useradd -d /home/hello username ##指定用户的家目录
useradd -s /bin/sh username ##指定用户的默认shell
(5)更改用户信息
usermod -aG 72 dy ##添加用户的附加组
-G是更改,-aG是添加,用-aG可以使用户同时是两个及以上组的附加组
usermod -G “” dy ##删除用户所有附加组
这是两个双引号,也可以使用两个单引号,表示里面是空
usermod -c “myself” westos ##指定用户说明文字 在登入用户时用户显示是myself
usermod -d /home/clb dy ##更改用户家目录的指向 切换账户后可以用pwd看家目录
usermod -md /home/lee dy ##更改用户家目录
usermod -s /bin/sh dy ##更改用户的shell 可用的shell可以用 cat /etc/shells查看
usermod -L dy ##冻结用户
usermod -U dy ##解锁用户
注:冻结用户前记得给用户密码 passwd westos
不设置密码用户也不会在登陆界面显示
(6)更改用户密码
passwd dy ##更改dzh密码
passwd -l dy ##在用户密码前加入"!!"
passwd -u dy ##去掉用户密码前的"!!"
usermod -L dy ##在用户密码前加入"!"
usermod -U dy ##在密码不为空时使用
passwd -d dy ##清空westos密码
(注:普通用户改密码时
1.必须知道当前用户原始密码
2.密码不能和帐号名称相似
3.密码不能是纯数字或纯字母
4.密码不能是有序的字母和数字的组合)
二、用户授权
1.权力下放文件为/etc/sudoers
此文件可以用vim直接编辑,但是不提供语法检测
也可以使用visudo编辑此文件,visudo命令提供语法检测
2.下放方式
visudo
100行左右
用户 主机名称=(得到的用户身份 命令
tom localhost=(root) /usr/sbin/useradd ##tom用户可以在localhost主机以root用户身份执行useradd命令
tom localhost=(root) NOPASSWD: /usr/sbin/useradd ##tom用户可以在localhost主机以
##root用户身份免密执行useradd命令
3.测试
su - student
sudo useradd hello
用sudo进行/etc/sudoers的调用
实验:
先用超级用户建立用户tom,再用tom用户建立新用户harry,发现没有权限
用vidudo命令,赋予用户tom可以在localhost主机以root用户身份执行useradd命令
第100行是为了代码规范,写了一个注释
第101行是命令代码,注意主机名可以用hostname进行查询
给tom用户设定一个密码,因为他在创建用户的时候需要密码,切换到tom用户,建立hello用户,用id检测,创建成功
用visudo给用户tom一个免密权限