无论是在企业中还是日常生活中,登录一台设备肯定不只一个人,所以,这个时候就要用到今天介绍的多用户管理。
1.用户分类
在linux下用户是根据角色定义的,具体分为三种角色:
超级用户:拥有对系统的最高管理权限,默认是root用户。
普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限。
虚拟用户:不能登录系统,它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。
2.用户和组的概念
我们知道,Linux是一个多用户多任务的分时操作系统,如果要使用系统资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统。这个账户和用户是一个概念,通过建立不同属性的用户,一方面,可以合理的利用和控制系统资源,另一方面也可以帮助用户组 织文件,提供对用户文件的安全性保护。
每个用户都用一个唯一的用户名和用户口令,在登录系统时,只有正确输入了用户名和密码,才能进入系统和自己的主目录。
用户组是具有相同特征用户的逻辑集合,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授 权,如果有10个用户的话,就需要授权10次,显然这种方法不太合理;另一种方法是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问 此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。这就是用户组,将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。引自:
https://blog.csdn.net/yasi_xi/article/details/8152938 Linux 用户与组的概念
3.用户的查看
1)查看当前用户
命令:whoami
2) 查看用户信息
命令:
id 用户名 查看指定用户id信息
id -u 用户名 查看用户的uid
id -g 用户名 查看用户的gid
id -G 用户名 查看用户所在的所有组的id
id -n 用户名 显示名字而不显示id数字
例:查看student用户信息
4.用户切换
su - 用户名
注意:su - 中 “-” 标示在用户身份切换时同时切换当前用户的环境
su - 执行时高级用户切换到低级用户不需要密码,低级用户切换到高级需要,平级用户切换切换也需要
每次su切换到其他用户操作之后必须退出,然后再次切换到其他用户
例:
root用户切换student
student用户切换root用户
5.用户在系统中的存储方式
/etc/passwd 为用户信息文件
用户名称:密码:uid:gid:说明:家目录:默认shell
例:
/etc/group 为用户组信息文件
组的名字:组密码:组id:组成员
例:
/etc/shadow 为认证信息文件
/etc/skel/.* 默认开启shell的配置,用户的骨文件
/home/username 用户的家目录
6.用户管理
1)用户删除
userdel 用户名 删除用户但不删除用户的配置文件
userdel -r 用户名 删除用户并删除用户的配置文件
2)用户信息监控指令
watch -n 1 'tail -n 3 /etc/passwd /etc/group;ls -l /home'
每一秒刷新一次,再打开一个shell
3)用户建立
命令:
useradd 要创建的用户名
useradd -u 8888 jack 指定用户jack的uid为8888
useradd -g 21 jack 指定用户初始组id,"21用户组必须是存在的"
useradd -G 21 jack 指定用户的附加组id “21用户组必须存在”
useradd -c "hello" jack 指定用户的说明为hello
useradd -d /home/666 jack 指定用户的家目录
useradd -s /bin/sh jack 指定用户的默认shell
注意:上述命令只能在用户创立时使用,若用户已存在会报错
4)建立用户组
groupadd 666 建立用户组666
groupadd -g 888 666 建立用户组并指定用户组的gid
groupdel 666 删除用户组666
5)更改用户信息
usermod
usermod -l 新名称 jack 更改用户的名称
usermod -u 6666 jack 更改用户uid为6666
usermod -g 21 jack 更改用户的初始组
usermod -G 21 jack 更改用户的附加组
usermod -aG 72 jack 添加用户的附加组
usermod -G "" jack 删除用户所有附加组的身份
usermod -c "hahahah" jack 更改用户说明文字
usermod -d /home/lee jack 更改用户家目录的指向
usermod -md /home/lee jack 更改用户家目录
usermod -s /bin/sh jack 更改用户的shell
usermod -L jack 冻结用户
usermod -U jack 解锁用户
7.用户认证
/etc/shadow 文件记录用户认证信息
此文件含有
用户名称:用户密码:用户密码最后一次被更改的时间:用户密码最短有效期:用户密码最长有效期:
密码警告期限:用户非活跃天数:用户到期日:用户自定义列
可使用命令:passwd -S jack 查看jack用户的密码信息
*修改用户密码
passwd 用户名 更改用户密码
passwd -l 用户名 在用户密码前加入“!!”
passwd -u 用户名
usermod -L 用户名 在用户密码前加入“!”
usermod -U 用户名 在密码不为空时使用
passwd -d 用户名 清空用户密码
注意:普通用户改密码时
1.必须知道当前永久原始密码
2.密码不能和帐号名称相似
3.密码不能是纯数字或纯字母
4.密码不能是有序的字母和数字的组合
拓展:
1)用户密码最后一次被更改的时间
passwd -e westos 会改变用户最后一次更改密码时间为0.
即,用户在登陆时会被强制更改密码
chage -d 0 westos 两个命令功能类似
2)用户密码最短有效期
passwd -n 1 westos westos用户在1天之内不能修改密码
chage -m 1 westos
3)用户密码最长有效期
passwd -x 30 westos 设定westos在30天内必须改密码
chage -M 40 westos
密码警告期限
passwd -w 2 westos 密码过期前两天有警告输出
chage -W 2 westos
用户非活跃天数
passwd -i 1 westos 密码过期后仍可登陆系统的天数
chage -I 1 westos
用户到期日
chage -E 2018-11-11 westos westos用户在2018-11-11日会被冻结
写在最后,如果大家喜欢linux运维方面的知识,欢迎关注本博主,会每周更新与linux运维相关的一些小知识,帮助大家入门
愿你与我一同成长!
往期:
ttps://blog.csdn.net/Stella_Pooter/article/details/82951345 Linux运维入门~1.虚拟机使用
https://blog.csdn.net/Stella_Pooter/article/details/82952307 Linux运维入门~2.命令行使用技巧
https://blog.csdn.net/Stella_Pooter/article/details/82960344 Linux运维入门~3.文件管理
https://blog.csdn.net/Stella_Pooter/article/details/82971516 Linux运维入门~4.输入输出管理与vim管理
Never say die