Linux系统之用户管理
一、用户及用户组存在的意义
1.用户存在的意义
系统资源是有限的,如何合理分配系统资源?
在这个问题解决时必须要有资源配合
1.身份 account
2.授权 author
3.认证 auth
3A机制
,3A机制组成系统中最底层的安全架构
2.用户组存在意义
用户组是一个逻辑容器
对用户进行归类和统一授权
2.用户及用户组在系统中的存在方式
电脑对数字敏感 id
人类对字符串敏感 名称
id
<-------> 名称
必须要记录到文件当中用户才能存在
用户
就是/etc/passwd
文件中的一行字符
用户组
存在的方式就是/etc/group
文件中的一行字符
三、用户切换
1.用户查看
whomai
查看当前用户
id
查看用户id信息
id -u
查看用户的用户id
id -g
查看用户主组id
id -G
查看用户所有的组的id
id -n
显示名称
2.用户切换 su - username
-
切换用户环境
username
如果root ----> commonuser 不需要后者密码
commonuser ----> root 需要密码
commonuser ----> commonuser 需要密码
注意:1.在做用户切换时当使用完毕用户身份及时退出 exit
logout
2.不要在一个shell中反复执行su命令
3在一个shell中反复执行su命令会导致环境错乱
四、用户涉及到的系统配置文件
/etc/passwd
用户身份信息文件
用户名称
:用户密码
:用户id
:用户主组id
:用户说明
:用户家目录
:用户默认shell
----1----------2----------3---------4-----------5-----------6-----------7-----------
/etc/group
组身份信息文件
组名称
:组密码
:组id
:组的附加成员
----1-------2-------3---------4--------
/etc/skel/.*
用户环境配置文件模板
/etc/shadow
用户认证信息文件
/home/username
用户家目录
五、用户和用户组建立及删除
监控用户建立的命令
-n 1 "tail -n 4 /etc/passwd /etc/group;echo =======;ls -l /home"
watch
useradd username
useradd -u id username
useradd -g id username
主组id
useradd -G id username
附加组id
useradd -d dir username
指定用户家目录
useradd -M username
建立用户时不建立家目录
useradd -c word username
指定用户说明
useradd -s shell username
指定用户shell
userdel -r username
用户删除 -r 删除用户的系统配置文件
uid
2^16=0-65535
0
表示超级用户
1-200
系统预留id
201-999
系统用户
1000-60000
用户级用户
/etc/login.defs
记录用户建立的默认规则
groupadd groupname
组建立
groupadd -g id groupname
指定组id
groupdel groupname
组删除
六、用户和用户组的信息管理
usermod -l username
更改用户名称
usermod -u username
更改用户id
usermod -g username
更改主组id
usermod -G username
更改用户附加组身份
usermod -aG username
添加用户附加组身份
usermod -c username
更改用户说明
usermod -d username
更改家目录指向
usermod -md username
更改家目录指向同时更改家目录名称
usermod -s username
更改默认shell
usermod -L username
冻结账号
usermod -U username
解锁
usermod groupmod -g username
更改用户组id
七、用户认证信息管理
1.用户名称
passwd -S lee
查看密码状态
2.用户加密字符
更改密码
passwd lee
只有root可以执行 echo 123 | passwd --stdin lee
passwd
普通用户改密码
Changing password for user lee.
Current password:
输入原始密码
New password:
输入新密码(8位以上无序数字+无序字母组合)
Retype new password:
重复输入
passwd: all authentication tokens updated successfully.
冻结认证
passwd -l lee
冻结账号认证
passwd -u lee
解锁账号认证
密码删除
passwd -d lee
密码使用天数
*从1970-1-1算其到今天的时间
passwd -e lee
修改默认使用时间为0,账号必须改密码才能登陆系统
chage -d 0 lee
修改默认使用时间为0,账号必须改密码才能登陆系统
密码最短有效期
passwd -n 1 lee
lee在1天内不能改密码
chage -m 1 lee
lee在1天内不能改密码
密码最长有效期
passwd -x 40 lee
40天内lee用户必须更新密码否则会被冻结
chage -M 30 lee
40天内lee用户必须更新密码否则会被冻结
密码过期警告
passwd -w 2 lee
账号过期前警告时间
chage -W 1 lee
账号过期前警告时间
认证非活跃天数
passwd -i 2 lee
账号认证最大时间超过后还能用多久
chage -I 1 lee
账号认证最大时间超过后还能用多久
账号认证到期时间
chage -E "2020-05-11"
到2020-5-11这天账号会被冻结
未启用功能
八、用户权力下放
1.在系统中普通用户是无法执行系统管理命令的
2.如果需要普通用户执行系统管理动作那么需要
root用户来进行授权
3.普通用户授权方式
sudo
作用:
可以使普通用户使用指定的用户身份呢运行命令
授权方法:
visudo
此命令作用是编辑/etc/sudoers
并提供语法检测
在文件的100行左右
##代码规范性
username hostname=(newusername) [NOPASSWD:] /command,/command1
#lee用户 在linux.wesots.com主机=(用超级用户身份) 执行useradd命令
lee linux.westos.com=(root) /usr/sbin/useradd
#westos用户 在linux.wesots.com 免密 执行useradd 和 userdel
westos linux.wesots.com= (root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
测试:
`su - lee`
`sudo useradd westostest` ##在lee第一次使用sudo命令时需要输入lee密码
`exit` 退出lee
`su - westos`
`sudo userdel -r westostest` westos可以免密执行userdel 命令