用户配置文件和密码配置文件

在Linux中主要是通过用户配置文件来查看和修改用户信息。

用户配置文件 /etc/passwd

[root@localhost ~]# 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
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:998:997:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin

“/etc/passwd”里列出了系统中所有存在的用户及相关配置,每行一个用户配置,以”:”分隔成7个字段,具体含义如下——

  1. 用户名,如第一行中的用户名是”root”),代表用户账号的字符串。

  2. 密码标识,在这里只用一个”x”代替。早期版本的unix系统中,用户密码是存放在这里,但基于安全因素,后来将密码存放到 “/etc/shadow”里。

  3. 用户标识号,也叫做UID,通常UID的取值范围是0-65535(但实际上已经可以支持到4294967294),0是超级管理员用户(root)的标识号,1~1000由系统保留,不能登陆也不能删除,普通用户的标识号大于1000。
    0:超级用户root;1-1000:系统保留用户;1001-65535:普通用户。

  4. 组标识号,也叫做GID,这个字段对应着”/etc/group”中的一条记录,其实”/etc/group”和”/etc/passwd”基本上类似。
    初始组: 就是指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户的初始组。
    附加组: 指用户可以加入多个其他的用户组,并拥有这些组的权限, 附加组可以有多个。

  5. 注释说明,该字段没有实际意义,通常记录该用户的一些属性,例如姓名、电话、地址等。

  6. 用户的家目录,当用户登录时就处在这个目录下。root的家目录是/root,普通用户的家目录则为/home/username,这个字段是可以自定义的。
    超级用户: /root/
    普通用户:/home/username/

  7. shell,用户登录后要启动一个进程,作用是用来将用户下达的指令传给内核。而Redhat/CentOS的shell是bash,默认的路径为”/bin/bash”。如果要建立一个账号而不要登录,那么就可以把该字段改成”/sbin/nologin”。

密码配置文件 /etc/shadow

[root@localhost ~]# cat /etc/shadow
root:$6$foCT30ZLMS77waXd$cRg3Hl8VH.T5nzXDhaCOY0KwdBOU2zgacehjsnSrtPUH5y6kz2bSYue.gCbJEk4Q20869p9PQAPi3wv8quTVx0::0:99999:7:::
bin:*:17110:0:99999:7:::
daemon:*:17110:0:99999:7:::
adm:*:17110:0:99999:7:::
lp:*:17110:0:99999:7:::
sync:*:17110:0:99999:7:::
shutdown:*:17110:0:99999:7:::
halt:*:17110:0:99999:7:::
mail:*:17110:0:99999:7:::
operator:*:17110:0:99999:7:::
games:*:17110:0:99999:7:::
ftp:*:17110:0:99999:7:::
nobody:*:17110:0:99999:7:::
systemd-bus-proxy:!!:17325::::::
systemd-network:!!:17325::::::
dbus:!!:17325::::::
polkitd:!!:17325::::::
tss:!!:17325::::::
sshd:!!:17325::::::
postfix:!!:17325::::::

“/etc/shadow”里列出了系统中所有存在的用户的密码及相关配置,每行一个用户密码配置,以”:”分隔成9个字段,具体含义如下——

  1. 用户名,跟”/etc/passwd”对应。

  2. 加密密码,加密算法升级为SHA512散列加密算法,如果密码位为”!!”或”*”代表没有密码,不能登录,其shell为/sbin/nologin。

  3. 密码最后一次修改的日期,以1970年1月1日作为标准时间,每过一天时间戳加1。

  4. 两次密码修改的间隔时间,要过多少天才可以更改密码,默认是0,即不限制。(和第3字段相比)

  5. 密码的有效期,密码多少天后到期,默认为99999。若设置成20,即20天后到期,必须修改密码,不然登录不了系统。(和第3字段相比)

  6. 密码到期前的警告期限,若设置为7,即到期前7天将通知用户。(和第5字段相比)

  7. 账号到期后宽限期,0,代表密码过期后立即失效,-1,则代表密码永远不会失效,若设置为2,到期过后2天后再不修改密码,用户锁定。(和第5字段相比)

  8. 账号的生命周期(要用时间戳表示),到了指定的期限,账号将失效。

  9. 保留字段,没有特别意义.

  • 把时间戳换算为日期
date -d "1970-01-01 17793 days"
Mon Jun 11 00:00:00 CST 2018

把日期换算为时间戳

echo $(($(date --date="2018/09/19" +%s)/86400))
17792
分类: Linux笔记

发表评论

电子邮件地址不会被公开。 必填项已用*标注