文章目录
一、系统中用户及用户组的管理
1、理解系统中的用户及用户组
- 用户:Linux系统最底层的安全设备,属于权限问题,系统要回收权力, 系统用户即系统的使用者,对用户管理就是对文件的管理。
- 用户组:用户组是用户的延伸,组的存在是为了共享用户的权力,组和用户是两个不同的机制。组分为初始组和附加组。
2、查看用户
whoami | 查看当前正在使用的用户
id 用户名 | 查看系统中指定用户的id
命令 | 含义 |
---|---|
id - u | 查看用户的uid(自己的身份证号) |
id - g | 查看用户的gid(用户所属初始组id) |
id - G | 查看用户的附加组 |
id - n | 显示用户的名字 |
3、用户在系统的存储文件
文件 | 含义 | 包含内容 |
---|---|---|
/ etc / passwd | 用户信息文件 | 用户名称:用户密码:uid:gid:说明:家目录:默认shell |
/ etc / group | 用户组信息文件 | 组的名字:组的密码:组的id:组的成员 |
/ etc / shadows | 用户认证信息文件 | 用户名称:密码(sha512非对称加密) |
/ home / username | 用户家目录(用户建立所属目录) | |
/etc/sudoers | 权力下放文件 |
4、用户的管理
4.1 用户的建立
命令 | 含义 |
---|---|
useradd 用户名 | 创建用户 |
useradd -u 111 用户名 | 创建用户的同时指定用户uid |
useradd -g 21 用户名 | 创建用户且指定用户初始组id,“21用户组必须是存在的” |
useradd -G 21 用户名 | 创建用户且指定用户附加组id,“21用户组必须是存在的” |
useradd -c “hello” 用户名 | 创建用户且指定用户说明为“hello” |
useradd -d /home/lee 用户名 | 创建用户且指定用户家目录为/home/lee |
useradd -s /bin/sh 用户名 | 创建用户且指定用户的默认shell |
(1)用户信息监控命令
动态监控每一个命令用 watch
watch -n 时间间隔 | 实时监控 (Ctrl +c 退出)
(2)useradd xixixi 建立用户xixixi
(3)useradd -u 888 wangyuran 创建用户的同时指定用户uid为888
(4)useradd -g 21 haha 创建用户haha且指定用户haha初始组id为21
(5)useradd -G 21 HUHU 创建用户HUHU且指定用户HUHU附加组id为21
(6)useradd -c “xinzhenglong” xin 创建用户且指定用户说明为“xinzhenglong”
(7)useradd -d /home/lee xinlv 创建用户xinlv且指定用户家目录为/home/lee
(8)useradd -s /bin/sh wang 创建用户wang且指定用户wang的默认shell为/bin/sh
- 注意:建立用户的同时会建立其配置文件,即用户的组信息和用户的家目录;建立用户时除了密码不能指定外,其他用户信息均可以指定;
4.2 用户的删除
命令 | 含义 |
---|---|
userdel 用户名 | 删除用户但不删除配置文件 |
userdel -r 用户名 | 删除用户及其配置文件 |
(1)userdel wcc 删除用户wcc但不删除配置文件
(2)userdel -r wcc 删除用户wcc且删除配置文件
- 注意: 删除一个用户的时候必须 - r ,否则它的配置文件还存在,就不能重新建立; 用户也不能重复建立,一定要先删除再建立; 当只剩下家目录的时侯,家目录是一个文件,用 rm 删除家目录文件即可。
5、用户组的管理
命令 | 含义 |
---|---|
groupadd 用户组名 | 创建用户组 |
groupadd -g 111 用户组名 | 创建用户组的同时指定用户组id |
groupdel 用户组名 | 删除用户组 |
**groupadd -g 678 hhhhhhh**创建用户组的同时指定用户组id
- font color=‘red’ >注意:用户组不能重复建立,一定要先删除再建立;建立用户组的同时也会建立它的家目录,同样删除用户组的同时也会删除它的家目录(这一点与用户的管理不一样)
6、用户信息的更改
- 用户信息的直接修改:不用删除原用户,在已有用户上修改用户信息
命令 | 含义 |
---|---|
usermod -l 新用户名 原用户名 | 更改用户名称 |
usermod -u 6666 用户名 | 更改用户uid |
usermod -g 21 用户名 | 更改用户初始组信息 |
usermod -G 21 用户名 | 更改用户附加组信息 |
usermod -aG 72用户名 | 添加用户的附加组 |
usermod -G “” 用户名 | 删除所有附加组信息 |
usermod -c “hello” 用户名 | 更改用户说明为“hello” |
usermod -d /home/lee 用户名 | 更改用户家目录的指向 |
usermod -md /home/lee 用户名 | 更改用户家目录的指向和家目录的名字 |
usermod -s /bin/sh 用户名 | 更改用户的默认shell |
usermod -L 用户名 | 冻结用户 |
usermod -U 用户名 | 解锁用户 |
- 注意 : 使用-G时,如果已有附加组,则会代替;如不想代替,想让两个都存在的话,使用-aG
(1)usermod -l ranran wang 更改用户wang的名称为ranran
(2)usermod -u 6666 ranran 修改用户的uid为6666
(3)usermod -g 72 ranran 更改用户的初始组
(4)usermod -G 72 ranran 更改用户的附加组
(5)usermod -aG 21 ranran 添加用户的初始组
(6)usermod -G “” ranran 清除用户的组信息
7、用户认证信息
例 :westos : !! : 17895 : 0 : 99999 : 7 : : :
【1】 : 【2】 : 【3】 : 【4】 : 【5】 : 【6】 :【7】 :【8】 :【9】 共有9列,位于/etc/shadow
列 | 含义 |
---|---|
第一列 | 用户名称 |
第二列 | 用户密码的加密字符串,默认用sha512对称加密,如果加密字符串前出现“!”,则该用户帐号被冻结 |
第三列 | 用户密码最后一次被修改的时间,此时间的计算是从1970-1-1日起累计的总时间天数 |
第四列 | 用户密码最短有效期限,用户在这个数字天数之内不能修改密码 |
第五列 | 用户密码最长有效期限,用户必须在此有效期内更新密码,如果超时会被冻结 |
第六列 | 密码警告期限,在过期前指定天数内会发送警告信息给用户 |
第七列 | 用户的非活跃天数(过期后),此位默认为空,如果设定数值,那么在密码最长有效期过后仍可以使用此用户的天数 |
第八列 | 用户到期日,默认为空,表示帐号一定会被冻结的时间点,此时间计算是从1970-1-1开始计算的累计天数 |
第九列 | 用户自定义列,目前没有启用 |
用户密码
命令 | 含义 |
---|---|
passwd 用户名 | 更改用户密码 |
passwd -l 用户名 | 锁定,在用户密码前加“!” |
passwd -u 用户名 | 解锁 |
passwd -d 用户名 | 清空用户密码 |
- 注意:普通用户更改密码时,必须知道当前用户原始密码,密码不能和帐号名称相似,不能是纯数字或纯字母,不能是有序的字母和数字的组合。
(1)passwd 用户名 更改用户密码
(2)passwd -l 用户名 在密码前加两个!!,锁定
(3)passwd -d 用户名 清除用户密码
用户密码最后一次被更改时间
命令 | 含义 |
---|---|
passwd -e 用户名 | 用户最后一次更改密码时间为0 |
chage -d 用户名 | 用户在登录时会被强制更改密码 |
用户密码最短有效期
命令 | 含义 |
---|---|
passwd -n 1 用户名 | 用户在1天内不可以修改密码 |
chage -m 1 用户名 | 同上 |
用户密码最长有效期
命令 | 含义 |
---|---|
passwd -x 30 用户名 | 用户在30天内必须修改密码 |
chage -M 30 用户名 | 同上 |
密码警告期限
命令 | 含义 |
---|---|
passwd -w 3 用户名 | 密码过期前3天有警告输出 |
chage -W 3 用户名 | 同上 |
用户非活跃天数
命令 | 含义 |
---|---|
passwd -i 3 用户名 | 密码过期后3天仍可以登录 |
chage -I 3 用户名 | 同上 |
(1)用passwd命令
(2)用change命令
八、用户授权
- 用户授权;一般情况下普通用户是不能新建用户或者用户组,只有超级用户有这个权力,现在想让普通用户使用超级用户的权力来建立用户或者用户组,此时需要把超级用户的权力给普通用户。
- 操作过程:
- 先建立一个普通用户 useradd cccw
- su - cccw 切换到普通用户
- 用普通用户创建新用户,不可行,则下方权力
- 打开一个文件 visudo (/etc/sudoers)
- 更改文件的100行左右写要操作的东西
内容为:用户 主机名字 =(得到的身份) NOPASSWD: 要执行的命令
例:内容为:tom hostname =(root) NOPASSWD: /usr/sbin/useradd
- 测试权力是否下放成功 用sudo