UID是系统识别用户的一个标识符,也是该用户所具备的权限象征,系统在创建用户账号时就会分配,但也支持后期更改。对于系统中的用户,与该用户的账号相关的信息分别被记录在/etc/passwd和/etc/shadow文件中,对于这两个文件之间的关系,可以说/etc/shadow文件相当于/etc/passwd文件的影子文件,也是用户密码真正存储的地方。
系统中用户账号的信息以行的方式记录在/etc/passwd文件中,每个用户账号在这个文件中都有对应的行,且每行都由多个项组成,其格式如下:
username : x ; UID : GID : user information : home-directory : login-shell
信息行中的每个字段之间都以冒号隔开,如果各字段间有间隙,则必须以空格符隔开。
对于系统中新增的每个用户,其名称、主目录、shell类型等相关信息都被写入/etc/passwd文件中被永久性保存,以下是该文件中的记录信息(只截取部分信息):
polkitd:x:998:996:User for polkitd:/:/sbin/nologin unbound:x:997:994:Unbound DNS resolver:/etc/unbound:/sbin/nologin sssd:x:996:993:User for sssd:/:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin rngd:x:995:992:Random Number Generator Daemon:/var/lib/rngd:/sbin/nologin user-1:x:1001:1001::/home/user-1:/bin/bash user-2:x:1002:1002::/home/user-3:/bin/bash user-5:x:1003:1003::/home/user-5:/sbin/nologin
记录信息中各字段含义说明如表3-5所示。
表3-5 各字段含义说明
/etc/shadow文件是一个附加的用户账号数据库文件,用于存储经过加密的密码。在系统中,用户的密码必须是可读的,使得任何命令或服务都可以转换用户名和UID。
在该文件中记录的项都按顺序与/etc/passwd中的每项对应,一般语法结构如下:
username : encoded password : changed : inactive : expires : warn : : :
在/etc/shadow文件中的各个字段之间以冒号隔开。
/etc/shadow文件相当于一个小型且独立的数据库,它的内容实际上是/etc/passwd文件内容的映射,不过用户的密码是经过加密的。/etc/shadow文件中记录的内容(只截取部分)如下:
sssd:!!:18606:::::: sshd:!!:18606:::::: rngd:!!:18606:::::: user-1:$6$TtrGkpL/h8BwBTCY$9DM7g56X00AXO3QU7dGK1Ff3wz6uU2dXqnxlyqVZjGOlKXjM165ANdn8Oa.KsjdB4QutwEAUWybJm.ZJ5vdXT.:18612:0:99999:7::: user-2:!!:18612:0:99999:7::: user-5:!!:18612:0:99999:7:::
记录信息中各字段含义说明如表3-6所示。
表3-6 各字段含义说明