http://beautifual.blog.51cto.com/3678509/1700834
- /etc/passwd
[root@pinfun6 ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
1 2 3 4 5 6 7
| | | | | | |
| | | | | | |--用户默认使用的SHELL
| | | | | |--用户家目录
| | | | |--用户finger信息(注释信息)
| | | |--用户组ID(GID) 基本组ID, 一个用户有多个组 /etc/group
| | |--用户ID(UID)
| |--密码占位符x(密码保存在/etc/shadow文件内)
|--用户名
这里的x表示是暗文显示。如果是其他什么数字,就代表是密码明文。
系统中有一类用户称为伪用户(psuedo users),这些用户在/etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。
它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。
登陆shell:用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。Shell是用户与Linux系统之间的接口。Linux的Shell有许多种,每种都有不同的特点。常用的有sh(BourneShell),csh(CShell),ksh(KornShell),tcsh(TENEX/TOPS-20typeCShell),bash(BourneAgainShell)等。系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh。
若此处shell为:/sbin/nologin,则代表这个用户不能登录。这样做的好处是,ftp用户只能通过ftp登录ftp服务器,而不能登录到shell中。
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
news:x:9:13:news:/etc/news:
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
rpm:x:37:37::/var/lib/rpm:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
netdump:x:34:34:Network Crash Dump user:/var/crash:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:4294967294:4294967294:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
pcap:x:77:77::/var/arpwatch:/sbin/nologin
xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
pegasus:x:100:500:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin
chrysan:x:500:501::/home/chrysan:/bin/bash
slack:x:501:502::/home/slack:/bin/bash
apache:x:48:48:Apache:/var/www:/sbin/nologin
- /etc/shadw
[root@pinfun6 ~]# cat /etc/shadow
root:$1$.TZS2yur$uQ3.5XLbdEhLkak9HKqZx/:16042:0:99999:7:空白:空白:空白
1 2 3 4 5 6 7 8 9
| | | | | | | | |--保留字段,目前为空
| | | | | | | |--用户过期日期(单位/天),此字段指定了用户作废的天数(从1970年的1月1日至今天数)
| | | | | | |--在口令过期之后多少天禁用此用户
| | | | | |--提前多少天警告用户口令将过期
| | | | |--两次修改口令间隔最多的天数
| | | |--两次修改口令间隔最少的天数
| | |--上次修改密码的时间(单位/天),自1970年01月01日至今天数
| |--用户密码(对应/etc/passwd文件内的密码占位符),如果密码添加“!!”表示禁用该用户
|--用户名(对应/etc/passwd文件内的用户名)
注:其中字段4、5、6、7、8的值为空时,账号可永久使用
用户密码:这里可以看到3类,分别是奇奇怪怪的字符串、*和!!其中,奇奇怪怪的字符串就是加密过的密码文件。星号代表帐号被锁定,双叹号表示这个密码已经过期了。奇奇怪怪的字符串是以$6$开头的,表明是用SHA-512加密的,$1$ 表明是用MD5加密的、$2$ 是用Blowfish加密的、$5$是用 SHA-256加密的。
设置用户密码命令:passwd [option]... USERNAME操作的就是这个文件。
- /etc/group
[root@pinfun6 ~]# cat /etc/group
root:x:0:root
| | | |--额外组(可以多个用“,”隔开)
| | |--组ID(GID)
| |--组密码占位符
|--组名
- /etc/gshadow
[root@pinfun6 ~]# cat /etc/gshadow
root:空白:空白:root
| | | |--以逗号分隔的小组成员
| | |--以逗号分隔的组管理员
| |--加密的密码
|--组名
- 修改/etc/password 来创建用户