用户与用户组管理一、
在CentOS 7 中 用户:
用户类型 | UID范围 | GID范围 |
管理员(root) |
0 | 0 |
普通用户 | 1-65535 | 1-65535 |
系统用户 | 1-999 | 1-999 |
登录用户 | 1000++ | 1000++ |
与用户相关的文件:
/etc/passwd | 存放用户相关信息 |
/etc/shawod | 存放用户口令信息, |
/etc/default/useradd | 创建用户时默认的选项 |
/etc/login.defs | 用户创建时,生成/etc/sahwod文件中相关配置 |
/etc/skel/ (该文件夹下的内容) | 用户家目录下默认的变量配置文件 |
先看一下/etc/passwd:
[root@test ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
该文件以 ' : ' 为分割符,我用这样的方式来表示:
----> 用户名 : 密码 : UID : GID : 用户描述 : 用户的家目录 : 使用的shell类型
以上分别代表对应位置的含义。(这里要说明一下,第二个字段的 “ X ” 在这里并不是真正意义上的密码,centos7 上被隐藏了,用 “ X ” 来代替。)
这里也可以使用man 命令来查看 文件格式:usage : man [OPTION...] [SECTION] PAGE...
章节 1 | 用户命令 |
章节 2 | 系统调用 |
章节 3 | C库调用 |
章节 4 | 设备文件及特殊文件 |
章节 5 | 配置文件格式 |
章节 6 | 游戏 |
章节 7 | 杂项 |
章节 8 | 系统管理工具 |
这里对应命令就使用: man 5 passwd
每当创建一个用户时,系统就会自动的在这个文件中添加一行记录;
在/etc/passwd文件中,使用/sbin/nologin shell类型的用户代表的是不可登陆用户,一般用于系统服务;
这里建议不要直接修改/etc/passwd文件中的内容,推荐使用命令修改;(后面将会介绍命令修改)
第二个文件:/etc/shawod 存放用户口令相关信息的文件;
[root@test ~]# cat /etc/shadow
root:$6$Ecr9RjBb$hCDfrOmBpPObtDBr4cky9VU3BDKlGJQVAak9Z4kbjnEsMBeR7PSuyQJ2UPb3NAqN.u.atkb0ineT2DQ0wfgnQ.:16646:0:99999:7:::
bin:*:16372:0:99999:7:::
daemon:*:16372:0:99999:7:::
adm:*:16372:0:99999:7:::
lp:*:16372:0:99999:7:::
sync:*:16372:0:99999:7:::
shutdown:*:16372:0:99999:7:::
这里的文件格式和 passwd 文件合适是类似的:
用户名 :$6(加密算法—sha512)SALT(盐)加密密码 :上一次密码修改距离1970年1月1日有多少天 :最小密码有效期 :最大密码有效期 :密码警告期单位为天 :密码不活跃时期 :账户有效期 :暂未使用
盐(Salt):就是一个随机生成的字符串。我们将盐与原始密码连接(concat)在一起(放在前面或后面都可以),然后将concat后的字符串加密。采用这种方式加密密码,查表法就不灵了(因为盐是随机生成的)。
密码不活跃时期:密码过期后的天数,在此期间,密码应该仍然被接受。
注意:第二个字段中有三段内容,分别是加密算法,盐,加密密码;
这里同样也可以使用man帮助: man 5 shadow
同样这里也建议不要直接修改/etc/shadow文件中的内容,推荐使用命令修改;(后面将会介绍命令修改)
第三个文件:/etc/default/useradd
[root@test ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100 //默认用户组,当你不想使用与用户名相同的用户组时,会将该用户加入到GID为100的用户组当中
HOME=/home //用户的家目录在/home
INACTIVE=-1 //
EXPIRE= //
SHELL=/bin/bash //shell类型为bash
SKEL=/etc/skel //用户家目录下的隐藏文件的模板文件路径
CREATE_MAIL_SPOOL=yes //创建邮箱地址
这个文件在你创建用户时,当你不指定参数,使用默认参数时,就会按照该文件中的内容进行创建;
第四个文件 /etc/login.defs 创建用户不做特殊说明时,口令信息写入/etc/shadow文件的默认值;
[root@test ~]# head -n 50 /etc/login.defs
#
# Please note that the parameters in this configuration file control the
# behavior of the tools from the shadow-utils component. None of these
# tools uses the PAM mechanism, and the utilities that use PAM (such as the
# passwd command) should therefore be configured elsewhere. Refer to
# /etc/pam.d/system-auth for more information.
#
# *REQUIRED*
# Directory where mailboxes reside, _or_ name of file, relative to the
# home directory. If you _do_ define both, MAIL_DIR takes precedence.
# QMAIL_DIR is for Qmail
#
#QMAIL_DIR Maildir
MAIL_DIR /var/spool/mail
#MAIL_FILE .mail
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
PASS_MAX_DAYS 99999 //比如这里的4项
PASS_MIN_DAYS 0 //
PASS_MIN_LEN 5 //
PASS_WARN_AGE 7 //
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 1000
UID_MAX 60000
# System accounts
SYS_UID_MIN 201
SYS_UID_MAX 999
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 1000
GID_MAX 60000
# System accounts
SYS_GID_MIN 201
SYS_GID_MAX 999
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
第5个是个文件夹路径:在第三个文件介绍时已说明;
[root@test ~]# cd /etc/skel/
[root@test skel]# ls -a
. .. .bash_logout .bash_profile .bashrc