用户信息文件: /etc/passwd
密码文件: /etc/shadow
用户组文件: /etc/group
用户组密码文件: /etc/gshadow
用户配置文件
/etc/login.defs
/etc/default/useradd
新用户信息文件 /etc/skel
登录信息 /etc/motd
0.linux中用户与组
-
1.用户
(1)超级用户 (root,UID为0) linux中只要是UID为0,linux就认为是超级用户。
(2)普通用户:(UID 500-6000 ,这个大小可以在配置文件更改)
(3)伪用户(UID 1-499) linux自带的一些用户
- 伪用户与系统和程序服务相关
例如:bin,dadaemon,shutdown,halt等,任何linux系统都默认有这些用户、
mail,news,games,apache,ftp,mysql以及sshd,与linux系统的进程相关。
- 位用户通常不需要或无法登陆系统
- 可以没有宿主目录
-
2.组:
(1)每个用户都至少属于一个组
(2)每个用户组可以包含多个用户
(3)同一用户组的用户享有该组共有的权限
1.用户信息文件: /etc/passwd简介:
里面的一行内容代表一个用户,因此想查看当前有几个用户可以:
[root@VM_0_12_centos ~]# wc -l /etc/passwd 30 /etc/passwd
里面的一行内容简介:
root:x:0:0:root:/root:/bin/bash
用户名:密码位:UID:GID:描述信息:
字段 | 含义 |
用户名 | y用户登录系统时使用的用户名 |
密码 | 密码位 |
UID | 用户标识号 |
GID | 缺省组标识号 |
注释性描述 | 例如存放用户全名信息等 |
宿主目录 | 用户登录系统后的默认目录,如果创建用户未指定,会在/home下创建于与用户同名的目录 |
命令解释器 | 用户使用的shell,默认为bash |
- 保留密码位的原因:
linux一开始是将密码写到/etc/passwd中,然后再写到/etc/shadow中。(这些操作是linux系统在我们添加用户的时候帮我们做的先将密码写到passwd然后将密码移到shadow)
[root@VM_0_12_centos ~]# grep qlq /etc/passwd #在/etc/passwd中查看qlq相关信息是密码位 qlq:x:1000:1000::/home/qlq:/bin/bash [root@VM_0_12_centos ~]# pwunconv #将密码回写到/etc/passwd [root@VM_0_12_centos ~]# grep qlq /etc/passwd #再次在/etc/passwd查看qlq相关信息是加密密码 qlq:$1$en8QJp5f$00T1TAnX68yvu2LoWztoF0:1000:1000::/home/qlq:/bin/bash [root@VM_0_12_centos ~]# grep qlq /etc/shadow #在/etc/shadow查看qlq信息发现shadow文件不存在 grep: /etc/shadow: No such file or directory [root@VM_0_12_centos ~]# pwconv #将密码从/etc/passwd写到/etc/shadow中 [root@VM_0_12_centos ~]# grep qlq /etc/passwd #查看/etc/passwd又变成密码位 qlq:x:1000:1000::/home/qlq:/bin/bash [root@VM_0_12_centos ~]# grep qlq /etc/shadow #查看/etc/shadow信息 qlq:$1$en8QJp5f$00T1TAnX68yvu2LoWztoF0:17620:0:99999:7:::
- 手工创建用户
所以我们添加用户的时候我们可以用vim手动添加一个到/etc/passwd,密码可以不写,然后在shadow中也添加此用户信息,密码不写,用户登录之后再写密码。(模仿之前的用户填写,shell脚本不能写错,否则不能登录)。然后我们还需要将/etc/skel/目录下的登录信息复制到/home/新建用户 文件夹下面。因为我们使用useradd添加用户的时候会在/home目录下创建一个与用户同名的目录,且将/etc/skel/目录下的登录信息复制到用户宿主目录。
最后登录即可:
username:在passwd验证
password:在shadow验证
2.密码文件: /etc/shadow简介
qlq:$1$en8QJp5f$00T1TAnX68yvu2LoWztoF0:17620:0:99999:7:::
用户名:加密密码:最后一次修改密码时间:最小时间间隔:最大时间间隔:警告时间:账号闲置时间:失效时间:标志
如果加密密码删除,只需要用户名就可以登录,所以如果忘记密码可以删除这个文件中对应用户密码,登录之后重新设置密码即可(虽然是只读文件,root是超级管理员,可以用:wq!强行保存)
字段 | 含义 |
用户名 | 用户登录的账号 |
密码 | 加密密码 |
最后一次修改时间 | 距离上次修改密码时间(距离1970年1月1日) |
最小时间间隔 | 两次密码修改之间的最小时间间隔天数 |
最大时间间隔 | 密码保持有效的最多天数 |
警告时间 | 从系统开始警告到密码失效的天数 |
账号闲置时间 | 账号闲置时间(0表示天天登录) |
失效时间 | 密码失效的绝对天数(失效了几天了) |
标志 | 一般不用 |
3. 用户缺省的配置文件
- /etc/login.defs
上面的默认值都在/etc/login.defs中配置,因此可以修改此配置文件:
[root@VM_0_12_centos skel]# cat /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 PASS_MIN_DAYS 0 PASS_MIN_LEN 8 #密码最短位数(用root设置的时候不用遵循规定) 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 # the user to be removed (passed as the first argument). # #USERDEL_CMD /usr/sbin/userdel_local # # If useradd should create home directories for users by default # On RH systems, we do. This option is overridden with the -m flag on # useradd command line. # CREATE_HOME yes #创建宿主目录 # The permission mask is initialized to this value. If not specified, # the permission mask will be initialized to 022. UMASK 077 #默认权限 # This enables userdel to remove user groups if no members exist. # USERGROUPS_ENAB yes # Use SHA512 to encrypt password. ENCRYPT_METHOD MD5 #加密方法
- 另外还有一个默认的配置文件存在/etc/default/useradd
[root@VM_0_12_centos skel]# cat /etc/default/useradd # useradd defaults file GROUP=100 #组ID HOME=/home #默认宿主目录创建在那个目录 INACTIVE=-1 #账号是否锁定,-1表示未锁定,0或其他表示锁定 EXPIRE= #账号失效时间 SHELL=/bin/bash #缺省使用的shell脚本 SKEL=/etc/skel #默认登录信息存放位置 CREATE_MAIL_SPOOL=yes #保存邮件信息的文件
如果想查看系统的shell脚本:
[root@VM_0_12_centos skel]# cat /etc/shells #查看系统的shell脚本 /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin /bin/tcsh /bin/csh
4.登录信息文件 /etc/motd /etc/issure
-
- 1./etc/issure 登录输入用户名和密码时候的提示符
[root@iz2ze46xi6pjjj69ailg9lz ~]# cat /etc/issue
\S
Kernel \r on an \m
这个配置文件是在登录的时候会出现的配置文件:
最好不要暴露我们的liux版本,所以我们可以修改/etc/issure,例如:
(1)备份且修改issure文件:
[root@iz2ze46xi6pjjj69ailg9lz ~]# cp /etc/issue /etc/issue.bak20180330 [root@iz2ze46xi6pjjj69ailg9lz ~]# vim /etc/issue [root@iz2ze46xi6pjjj69ailg9lz ~]# cat /etc/issue please enter username and password!:
(2)重新登录查看提示符:
-
- /etc/motd 登录成功之后的提示符(可以替代wall发广播与替代mail发邮件)
[root@iz2ze46xi6pjjj69ailg9lz ~]# cat /etc/motd
Welcome to Alibaba Cloud Elastic Compute Service !
修改登录成功之后的提示信息:
(1)备份且修改/etc/motd文件
[root@iz2ze46xi6pjjj69ailg9lz ~]# cp /etc/motd /etc/motd.bak20180330 [root@iz2ze46xi6pjjj69ailg9lz ~]# vim /etc/motd [root@iz2ze46xi6pjjj69ailg9lz ~]# cat /etc/motd Welcome to China!This is your father!
(2)登录查看提示信息: