1、认识用户和用户组文件

(1)用户帐号文件
/etc/passwd
该文件列出了用户的有用信息,包括用户ID,组ID,家目录,默认shell等。
所有用户对passwd文件具有读取权限,所以该文件只有用户帐号的相关内容,并没有密码。
在passwd文件中每一个用户账号的一行中,又通过“:”划分了不同的属性。
passwd配置文件中各个字段的关系和含义:
root : x : 0 : 0 : root : /root : /bin/bash
一共包含7个部分
①root:用户名,用来标识用户的名称,在系统内用户名应该具有唯一性。
②x:用户密码的标志位。
③0:用户ID,在系统内唯一标识用户的编号(UID)。
在linux中有三种用户分类
Ⅰ.超级管理员 root
UID为0。
Ⅱ.系统用户
UID为1-499,一般不会登录系统,作为系统默认的管理用户。
Ⅲ.普通用户
UID为500-65534
其中nobody的UID为65534,这个用户的权限会被进一步的限制,一般用作来宾账户。
④0:群组ID,在系统内唯一标识群组的编号(GID)。
⑤root:用户的全名称,对用户名的描述,可以不设置。
⑥/root:用户的家目录,超级管理员在/root,普通用户在/home/用户名
⑦/bin/bash:用户登陆shell的默认类型,CentOS系统中,默认使用/bin/bash

(2)用户shadow文件(/etc/shadow)
root :springboot 钉钉通过名称获取userid 钉钉员工userid怎么看_用户名LMK3bQOE$9wLc66PEa88h9oKiL0bV01n.KzHgXUYk8/waJqhb6ZT82Z3trl9XMkJ51TNrkVmozGv6WOyLEy1Nwe7/QgWIi0 : 18192 : 0 : 99999 : 7 :::
①root:用户名
②一串乱码:加密口令,登陆密码的密文保存在这。就算同样的密码,密文也有可能不同
③18192:最后一次修改时间。表示从某个时段起,用户最后一次修改密码的时间。
④0:最小时间间隔。两次修改密码之间所需要的最小天数。
⑤99999:最大时间间隔。密码保持有效的最大天数。
⑥7:警告时间。从系统开始警告用户到密码正式失效之间的天数。
⑦不活动时间:用户没有登陆系统但帐号依然保持有效的最大天数。
⑧失效时间:帐号的生存周期。
⑨保留字段:目前没有使用

(3)用户组帐号文件(/etc/group)
root❌0:
含义:群组名称、群组密码标志位、GID、群组成员

(4)用户组的影子文件(/etc/gshadow)
root:::
含义:群组名称、群组密码、群组管理员、群组成员

2、用户帐号管理
(1)创建用户
adduser:在部分系统中,会自动为创建的用户指定家目录、shell版本,会在创建时要求输入用户密码。

useradd:需要在使用的时候指定上述基本设置,如果不使用任何参数,则创建的用户无密码、无家目录、没有指定的shell版本(CentOS中两条命令是相同的)。

语法:adduser(useradd) [选项] 用户名
[root@model 桌面]# adduser test
[root@model 桌面]# tail -1 /etc/passwd
test❌501:505::/home/test:/bin/bash
选项列表:
-g:设置该用户加入哪个用户组。注意,在设置用户组时,该GID应当已经存在。
-G:设置用户加入用户组列表。注意,各组之间用逗号分隔。
-d:设置默认家目录。
-s:设置默认shell,如果不使用,默认为/bin/bash。
-r:创建一个用户ID小于500的系统用户。
-u:手工指定新用户的ID。注意,该值必须唯一,且大于499。
-p:新建用户指定登陆密码。

例:创建指定家目录(/tmp/test1)和登陆shell(/sbin/nologin)的用户test1
[root@model 桌面]# useradd -d /tmp/test1 -s /sbin/nologin test1
[root@model 桌面]# tail -1 /etc/passwd
test1❌502:502::/tmp/test1:/sbin/nologin

(2)修改用户
usermod
语法:
usermod 选项 新内容 旧内容
例1:修改用户名
[root@model 桌面]# usermod -l test2 test
[root@model 桌面]# tail -1 /etc/passwd
test2❌501:505::/home/test:/bin/bash
选项列表:
-l:修改用户账户名
-c:修改用户账号的别名
-u:修改用户UID
-g:修改群组GID
-G:批量修改群组GID
-L:锁定用户密码
-U:解锁用户密码
-s:修改用户默认shell
-d:修改用户家目录

例2:修改用户的家目录
语法:usermod -d 新家目录 用户名
[root@model 桌面]# usermod -d /home/test1 test1

(3)删除用户
userdel [选项] 用户名
注意:选项-r用来删除用户的家目录。

(4)设置用户登录密码
命令:passwd
方法1:
[root@model 桌面]# passwd user
更改用户 user 的密码 。
新的 密码:
无效的密码: WAY 过短
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
方法2:
echo 密码的明文 | passwd --stdin 用户名
[root@model 桌面]# echo 123456 | passwd --stdin user
更改用户 user 的密码 。
passwd: 所有的身份验证令牌已经成功更新。