在生产环境中,大多数时候使用RHEL7或者其他的linux系统时,都可能是有多人同时操作。而设计linux系统的初衷即是为了满足多用户同时工作的需求。
root用户:拥有最高的系统所有权,能够管理系统的各项功能,如添加/删除用户、启动/关闭服务进程、开启/禁用硬件设备等。
若直接使用root用户,若执行了错误的命令,很可能直接使得整个系统崩溃。
故建议以普通用户给的身份登录系统:即拥有能满足工作需求的最小权限的用户。
对系统的每个用户而言,都要为其登记信息,其用户ID即是UID,还要登记其所属组ID即GID。
在RHEL7中,用户身份有:
权限的分配可以按照用户(每个人)分配,也可以按照所属组(部门)进行分配。
每个用户在创建的时候,默认会创建同名的基本用户组,自成一组。若该用户加入其他组,那么其他组就是该用户的拓展用户组。一个用户只有一个基本用户组,但可以有多个拓展用户组。
useradd
命令
参数 | 作用 |
---|---|
-d | 指定家目录 |
-e | 账户到期时间,YYYY-MM-DD |
-M | 不创建用户家目录,常用于系统用户 |
-u | uid |
-g | 指定一个已存在的基本用户组,不指定默认创建同名基本用户组 |
-G | 指定一个或多个拓展用户组 |
-N | 不创建同名基本用户组 |
-s | 指定shell解释器 |
-p | 指定用户密码,默认无密码,且账户密码被锁定 |
# 从以下命令可以看出,adduser也是可以添加用户的,是useradd的软连接,知道即可。
[root@master ~]# which useradd
/usr/sbin/useradd
[root@master ~]# which adduser
/usr/sbin/adduser
[root@master ~]# ll /usr/sbin/useradd
-rwxr-x---. 1 root root 118232 10月 31 2018 /usr/sbin/useradd
[root@master ~]# ll /usr/sbin/adduser
lrwxrwxrwx. 1 root root 7 6月 23 17:47 /usr/sbin/adduser -> useradd
命令:groupadd [-g] group_name
不指定gid
,则gid
默认从10000开始,可以通过/etc/group
文件查看gid
usermod
命令
命令useradd
中的参数都可以使用,作用都变为重置为或者变更
补充参数:
-L
:锁定用户,禁止登录系统
-U
:解锁用户,允许其登录系统
-d -m
:参数连用,变更家目录并做数据迁移
-p
:设置用户密码并解锁用户密码
将shell解释器修改为/bin/bash
后,用户linux2已经可以登录系统了。
可通过命令passwd -S 用户名
查看用户是否被锁住。
groupmod
命令
修改基本用户组linux1的gid
groupmod -g 5555 linux1
userdel
命令
查看文件/etc/passwd
,有以下无用的用户要删除。
-r
:删除用户的同时,删除该用户家目录和用户文件。
groupdel
命令
若一个组是某一个用户的基本用户组,则不允许删除该组。
groupdel 组名
passwd
命令
参数 | 作用 |
---|---|
-S | 查看用户是否被锁定以及密码采用的加密算法名称 |
-l | 密码锁定 |
-u | 密码解锁 |
-d | 允许空密码登录 |
-e | 强制下次登陆要修改密码 |
–stdin | 允许通过标准输入修改用户密码【echo "123456" | passwd --stdin abong 】 |
[root@master ~]# chage
用法:chage [选项] 登录
选项:
-d, --lastday 最近日期 将最近一次密码设置时间设为“最近日期”
-E, --expiredate 过期日期 将帐户过期时间设为“过期日期”
-h, --help 显示此帮助信息并推出
-I, --inactive INACITVE 过期INACTIVE天数后,设定密码为失效状态
-l, --list 显示帐户年龄信息
-m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数”
-M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数”
-R, --root CHROOT_DIR chroot 到的目录
-W, --warndays 警告天数 将过期警告天数设为“警告天数”
# 设置0天后要修改密码,即下次登录就修改密码
[root@master ~]# chage -d 0 abong
# id 用户和组的信息
[root@master ~]# id abong
uid=1000(abong) gid=1000(abong) 组=1000(abong)
# whoami #查看当前有效用户名
[root@master ~]# whoami
root
# who 显示目前登入系统的用户信息。
[root@master ~]# who
root :0 2020-07-02 18:56 (:0)
root pts/0 2020-07-02 18:57 (:0)
# users用于显示当前登录系统的所有用户的用户列表
[root@master ~]# users
root root
/etc/passwd
:存放用户信息【一行由7个部分,其中口令只是一个描述符,不是真实的密码。】
用户名:口令:uid:gid:注释信息:家目录:shell解释器
/etc/shadow
:存放用户的密码【权限是000,但是root除外】【一行由9个部分组成,其中加密口令是指经过md5加密的口令】
用户名:加密口令:最后一次修改时间:密码修改的最小时间间隔(不能改):密码修改的最大时间间隔(必须改):警告时间:不活动时间:失效时间:标志
/etc/group
:存放用户的组信息
组名:密码:gid:用户列表
/etc/default/useradd
:存放创建用户的默认参数值,一般不修改该文件。
# 创建用户的默认配置文件
[root@master ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100 # users组ID为100
HOME=/home # 默认在该目录下创建家目录
INACTIVE=-1 # 密码是否会过期,-1则会过期
EXPIRE= # 密码过期时间
SHELL=/bin/bash # 用户默认的shell
SKEL=/etc/skel # 模板目录
CREATE_MAIL_SPOOL=yes # 是否创建邮箱文件
[root@master ~]# cat /etc/group | grep users
users:x:100:
/etc/login.defs
:存放创建用户的一些默认参数值,一般不修改该文件。
执行pwunconv
命令。【/etc/passwd
中的口令通过pwconv
命令加密成为/etc/shadow
中的加密口令,而pwunconv
可将/etc/shadow
中的加密口令解码回写入/etc/passwd
对应的密码中】【即取消shadow password功能】
以root用户执行chpasswd < passwd.txt
,即将密码通过chpasswd
命令写入到文件/etc/passwd
中,可查看该文件进行检查,此时的密码未加密。
执行pwconv
命令。【对/etc/passwd
文件中的密码进行加密处理,并写入到/etc/shadow
文件中,而/etc/passwd
中的口令再次变成变符号x】
以上就是用户以及用户组管理的全部内容了,感谢各位的关注和点赞!!!