今天继续学习Linxu用户管理命令,先来说说存储用户真正密码的文件
影子文件:/etc/shadow
打开后文件内容如下,每一行储存一个用户的密码等信息
- 第一字段:用户名
- 第二字段:加密用户密码。加密算法升级为SHA512散列加密算法。如果密码位是“!!”或“*”代表没有密码,不能登录,我们可以在某个用户密码前加入感叹号,这样无论怎么样,该用户都无法输对密码,即用户账号被封停
- 第三字段:密码最后一次修改时间,其中显示的时间使用1970年1月1日作为标准时间,每过一天时间搓加1
- 第四字段:两次密码的修改间隔时间(和第三字段相比)
- 第五字段:密码有效期(和第三字段相比)
- 第六字段:密码修改到期前的警告天数(和第五字段相比)
- 第七字段:密码过期后的宽限天数(和第五字段相比),0:代表密码过期后立刻失效,-1:则代表密码永远不会失效。
- 第八字段:账号失效时间,不管是否到密码有效期,到时间直接封禁。时间要用时间搓表示,时间搓与日期的转化命令:
date -d “1970-01-01 16066 days”:该命令将16066时间搓转化为日期
echo ( ( (( (((date --date=“2014/01/06” +%s)/86400+1)):将日期转化为时间搓,其中86400是每天的秒数 - 第九字段:保留字段,没有实际用处
组文件:/etc/group
- 第一字段:组名
- 第二字段:组的密码标志
- 第三字段:GID——group id,即组id
- 第四字段:组中附加用户
组密码文件:/etc/gshadow
- 第一字段:组名
- 第二字段:组密码(不常见)
- 第三字段:组管理员用户名
- 第四字段:组中附加用户
接下来说一下用户的家目录,其实打开过windows系统cmd的因该注意到,打开后所在的目录就是在家目录中。家目录存储这用户的一些配置文件。
- 普通用户:/home/用户名,所有者和所属组都是此用户,权限是700,即除root外,别的用户
以及用户组没有别的权限 - 超级用户:/root/,所有者和所属组都是root用户,权限是550
如果我们把某个用户变成超级用户,具体操作是将/etc/passwd文件中用户的uid变成0即可,可以发现该用户的家目录并不会转移到/root/中,而是保持原来,只不过权限变成了超级用户
用户邮箱目录:/var/spool/mail/用户名/,其中/var目录下保存的是可变文件
用户模板目录:/etc/skel/,存放用户相关文件,如果在某个用户的home目录中误删除了某个重要文件,导致无妨正常登录,一般可以到/etc/skel/中cp过来然后chown,以此解决文件缺失问题
接下来说一下用户管理的第一个命令:useradd
- useradd -u UID:手工指定用户的UID号
- useradd -d 家目录:手工指定家目录
- useradd -c 用户说明:手工指定用户的说明
- useradd -g 组名:手工指定用户的初始组
- useradd -G 组名:指定用户的附加组
- useradd -s shell:手工指定用户的登录shell,默认是/bin/bash
最后说一下用户默认值文件和用户密码默认值文件,该文件储存的是建立用户是的默认值
用户默认值文件:/etc/default/useradd
- GROUP=100 #用户默认组
- HOME=/home #用户家目录
- INACTIVE=-1 #密码过期宽限天数
- EXPIRE= #密码失效时间
- SHELL=/bin/bash #默认shell
- SKEL=/etc/skel #模板目录
- CREATE_MAIL_SPOOL=yes #是否建立邮箱
用户密码默认值文件:/etc/login.defs
- PASS_MAX_DAYS 99999 #密码有效期
- PASS_MIN_DAYS 0 #密码修改间隔
- PASS_MIN_LEN 5 #密码最小5位
- PASS_WARN_AGE 7 #密码到期警告
- UID_MIN 1000 #最小和最大UID范围
UID_MAX 60000 - ENCRYPT_METHOD SHA512 #加密模式