详解 passwd
Linux passwd 文件详解 Linux passwd 文件是 Linux 系统中一个非常重要的文件,它记录了每个用户的一些基本属性,包括用户名、口令、用户标识号、组标识号、注释性描述、主目录和登录 Shell 等信息。系统管理员经常会接触到这个文件的修改以完成对用户的管理工作。 Linux passwd 文件的内容类似于下面的例子: ``` root:x:0:0:Superuser:/:/bin/bash daemon:x:1:1:System daemons:/etc:/bin/sh bin:x:2:2:Owner of system commands:/bin:/bin/sh sys:x:3:3:Owner of system files:/usr/sys:/bin/sh adm:x:4:4:System accounting:/usr/adm:/bin/sh uucp:x:5:5:UUCP administrator:/usr/lib/uucp:/bin/sh auth:x:7:21:Authentication administrator:/tcb/files/auth:/bin/sh cron:x:9:16:Cron daemon:/usr/spool/cron:/bin/sh listen:x:37:4:Network daemon:/usr/net/nls:/bin/sh lp:x:71:18:Printer administrator:/usr/spool/lp:/bin/sh sam:x:200:50:Samsan:/usr/sam:/bin/sh ``` 从上面的例子我们可以看到,/etc/passwd 中一行记录对应着一个用户,每行记录又被冒号(:)分隔为 7 个字段,其格式和具体含义如下: * 用户名:代表用户账号的字符串,通常长度不超过 8 个字符,并且由大小写字母和/或数字组成。 * 口令:一些系统中,存放着加密后的用户口令字。虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd 文件对所有用户都可读,所以这仍是一个安全隐患。 * 用户标识号:是一个整数,系统内部用它来标识用户。一般情况下它与用户名是一一对应的。 * 组标识号:字段记录的是用户所属的用户组。 * 注释性描述:记录着用户的一些个人情况,例如用户的真实姓名、电话、地址等。 * 主目录:用户的起始工作目录,它是用户在登录到系统之后所处的目录。 * 登录 Shell:用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序。 Linux passwd 文件的安全性是一个非常重要的问题,因为这个文件对所有用户都是可读的,所以需要采取一定的安全措施来保护用户的口令信息。现在许多 Linux 系统都使用了 shadow 技术,把真正的加密后的用户口令字存放到/etc/shadow 文件中,而在/etc/passwd 文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。 在 Linux 系统中,用户的登录 Shell 可以是各种不同的 Shell,每种 Shell 都有不同的特点。系统管理员可以根据系统情况和用户习惯为用户指定某个 Shell。如果不指定 Shell,那么系统使用 sh 为默认的登录 Shell,即这个字段的值为/bin/sh。用户的登录 Shell 也可以指定为某个特定的程序(此程序不是一个命令解释器)。利用这一特点,我们可以限制用户只能运行指定的应用程序,在该应用程序运行结束后,用户就自动退出了系统。 Linux passwd 文件是 Linux 系统中一个非常重要的文件,它记录了每个用户的一些基本属性,并且提供了许多有用的信息,帮助系统管理员更好地管理用户账号。