/etc/passwd其实保存的是用户的相关信息而不是像名字上说的密码信息,之所以这样取文件名是因为在Linux2.0之前确实保存着密码信息,之后出于安全性考虑才将用户信息和密码分开存储。现在的密码已经保存到了同目录下的/etc/shadow文件中,而且只有根用户才可以查看该文件。/etc/passwd文件中原来存放密码的位置上用"x"代替。以下是用默认参数创建的用户时在/etc/passwd中的信息(注意格式):
coderbolg:x:500:500::/home/coderbolg:/bin/bash
我们可以用"vim /etc/passwd"命令编辑/etc/passwd文件,但是更专业的做法是用vipw命令,这个除了可以像用vim那样编辑文件,还自动对该文件加锁,编辑结束后自动解锁,这样数据的一致性就得到了保证。
/etc/passwd文件会列出所有用户的信息,而且每个用户占一行,每行中用:分隔各信息位,各信息位含义如下:
1、用户名:用户名是用户在系统中的标识,通常长度不超过8个字符,合法字符包括字母、数字、下划线和句点。
2、密码:该信息位存放加密后的用户密码。它通常只存放一个"x",真正的密码已转移到了/etc/shadow文件中。
3、用户标识号(UID):UID是用户在系统中的唯一标识号,必须是整数,和用户名一一对应,当有多个用户对就同一个UID时,系统会把它们视为同一用户 。
4、用户组标识号(GID):该信息位记录用户所属的用户组,用户组的具体定义可以查看/etc/group文件
5、个人信息描述:该信息位记录着用户的真实姓名、电话、地址和邮编等个人信息,各项之间用,分隔。它通常为空
6、登录目录:该目录是用户登录系统后的默认目录,通常就是用户的主目录,一般在/home下,根用户登录系统后的默认的登录目录是/root。
7、登录Shell:用户以文本方式(非图形界面)登录系统后需要启动一个Shell进程。在Linux中支持多种Shell,而通常是bash。
(注:如果看到该文件中某一行以#开始,说明该用户账号被停用。也就是说暂时不想让某个用户登录系统时可以在该用户信息所在行前加上#)