`
wade6
  • 浏览: 274200 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

解析Linux /etc/passwd文件

 
阅读更多

转自:http://os.51cto.com/art/201003/187533.htm

 

       在Linux /etc/passwd文件中每个用户都有一个对应的记录行,它记录了这个用户的一些基本属性。系统管理员经常会接触到这个文件的修改以完成对用户的管理工作。这个文件对所有用户都是可读的。

 

但是Linux /etc/passwd文件中都有些什么内容呢?

 

它的内容类似下面的例子:

===================================================

#cat/etc/passwd

root:x:0:0:Superuser:/:

daemon:x:1:1:Systemdaemons:/etc:

bin:x:2:2:Ownerofsystemcommands:/bin:

sys:x:3:3:Ownerofsystemfiles:/usr/sys:

adm:x:4:4:Systemaccounting:/usr/adm:

uucp:x:5:5:UUCPadministrator:/usr/lib/uucp:

auth:x:7:21:Authenticationadministrator:/tcb/files/auth:

cron:x:9:16:Crondaemon:/usr/spool/cron:

。。。。

===================================================

从上面的例子我们可以看到,/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下:

 

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

 

 “用户名”是代表用户账号的字符串。通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(:),因为冒号在这里是分隔符。为了兼容起见,登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头。

 

“口令”一些系统中,存放着加密后的用户口令字。虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。

 

“用户标识号”是一个整数,系统内部用它来标识用户。一般情况下它与用户名是一一对应的。如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等。

通常用户标识号的取值范围是0~65535。0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。

 

“组标识号”字段记录的是用户所属的用户组。它对应着/etc/group文件中的一条记录。

 

“注释性描述”字段记录着用户的一些个人情况,例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。在不同的Linux系统中,这个字段的格式并没有统一。在许多Linux系统中,这个字段存放的是一段任意的注释性描述文字,用做finger命令的输出。

 

“主目录”,也就是用户的起始工作目录,它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。

 

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也可以指定为某个特定的程序(此程序不是一个命令解释器)。利用这一特点,我们可以限制用户只能运行指定的应用程序,在该应用程序运行结束后,用户就自动退出了系统。有些Linux系统要求只有那些在系统中登记了的程序才能出现在这个字段中。

 

系统中有一类用户称为伪用户(psuedousers),这些用户在Linux /etc/passwd文件中也占有一条记录,但是不能登录,因为它们的登录Shell为空。

 

它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求

 

常见的伪用户如下所示。

伪用户含义

bin拥有可执行的用户命令文件

sys拥有系统文件

adm拥有帐户文件

uucpUUCP使用

lplp或lpd子系统使用

nobodyNFS使用

拥有帐户文件

除了上面列出的伪用户外,还有许多标准的伪用户,例如:audit,cron,mail,usenet等,它们也都各自为相关的进程和文件所需要。

 

由于Linux /etc/passwd文件是所有用户都可读的,如果用户的密码太简单或规律比较明显的话,一台普通的计算机就能够很容易地将它破解,因此对安全性要求较高的Linux系统都把加密后的口令字分离出来,单独存放在一个文件中,这个文件是/etc/shadow文件。只有超级用户才拥有该文件读权限,这就保证了用户密码的安全性。

分享到:
评论

相关推荐

    Linux 初识/etc/passwd和/etc/shadow

    小白学习日记三:/etc/passed和/etc/shadow文件内容解析 认识/etc/passwd和/etc/shadow 两个文件是Linux系统中最重要的文件,与用户和用户组有关的信息都在这些系统文件下,如果出问题则无法正常登录系统。 /etc/...

    cat /etc/passwd 查看linux用户

    使用`cat /etc/passwd`命令可以查看系统中的所有用户信息,包括用户名、用户ID(UID)、组ID(GID)、用户主目录和默认Shell。每个用户都有一个对应的条目,这些信息对于管理用户权限和配置非常重要。 2. **查看...

    Linux基础课件-用户账户文件—/etc/passwd文件.pptx

    在Linux操作系统中,/etc/passwd文件是管理用户账户的核心组件之一。这个文件包含了系统中所有用户的基本信息,包括但不限于用户账号名称、密码(以安全的方式表示)、用户标识符(UID)、用户组标识符(GID)以及...

    linux里etc下的文件解析

    ### Linux里/etc下的文件解析 在Linux系统中,`/etc`目录是非常关键的一个位置,它主要用于存储系统级的配置文件。这些配置文件对于整个系统的正常运行至关重要,它们定义了系统的行为、网络设置、用户权限等多种...

    etc.tar.gz

    标题中的"etc.tar.gz"表明这是一个使用gzip压缩算法打包的tar归档文件,"etc"通常代表Linux系统中的/etc目录,这是一个非常重要的配置文件目录。在Linux系统中,/etc目录存储了各种服务、程序和系统级别的配置文件,...

    linux 修改不了密码问题

    这可能是因为系统无法获取对`/etc/passwd`文件的锁,可能是由于其他进程正在使用它,或者权限问题。通过`fuser`和`lsof`命令检查是否有进程占用该文件,并确认文件权限是否正常。如果权限没有问题且没有进程锁定文件...

    linux根文件系统构建(etc目录包)

    在这个名为"linux根文件系统构建(etc目录包)"的主题中,我们将深入探讨etc目录及其包含的文件和模板,以及如何构建和管理一个完整的Linux根文件系统。 一、etc目录详解 /etc目录是Linux中用于存储系统级配置文件...

    etc.tar.gz-Linux下etc配置文件目录样例

    在Linux操作系统中,`etc`目录是一个至关重要的部分,它包含了系统级别的配置文件和目录。`etc`在英文中是"etcetera"的缩写,意为"等等",在Linux世界里,它代表着系统运行所需的众多配置选项。这个目录下的文件用于...

    ChinaMobile.rar_../etc/passwd_JSP 毕业设计_姣曚笟璁捐 jsp_毕业设计_移动 计费 系统

    再者,系统涉及到的“../etc/passwd”文件是一个典型的Linux系统文件,其中包含了系统用户账户的信息,包括用户名、密码(通常以星号表示,非明文)、用户ID(UID)、组ID(GID)等。在设计中,可能与权限管理和用户...

    linux配置文件解析

    此外,还有一些其他重要配置文件,如`/etc/inetd.conf`(控制inetd守护进程,管理基于TCP/IP的网络服务),`/etc/fstab`(定义文件系统挂载点和挂载选项),`/etc/resolv.conf`(配置DNS解析设置)等。 在管理Linux...

    Linux系统目录解析

    9. **/etc** - 配置文件目录:存放系统及应用程序的配置文件,例如`/etc/rc.d`用于设置启动脚本,`/etc/passwd`存储用户信息,`/etc/fstab`定义文件系统挂载点等。通过修改这些文件可以配置系统行为。 了解这些目录...

    解析Linux系统根文件系统的目录树

    【解析Linux系统根文件系统的目录树】 Linux系统根文件系统的目录树是其核心架构的一部分,它按照功能和用途将文件和程序组织成不同的子目录。理解这一结构对于管理和维护Linux系统至关重要。 1. **根目录(/)** ...

    2013linux考试答案讲解.docx

    文档"2013linux考试答案讲解.docx"主要涵盖了Linux操作系统的基础知识和常用命令,是针对Linux系统管理员技能鉴定考试的一份练习题解析。以下是其中涉及的主要知识点: 1. **主机名修改**:在Linux中,主机名可以...

    2013linux考试答案.docx

    以上就是针对2013年Linux考试答案中涉及的主要知识点的详细解析,包括系统配置、常用命令的使用以及目录和文件的管理。掌握这些知识将有助于理解和操作Linux系统,对于通过Linux相关考试和日常运维工作都至关重要。

    Linux 系统shell编程

    `/etc/shells` 文件在Linux系统中扮演着特殊的角色。它是一个文本文件,列出了系统允许用户选择作为登录Shell的所有合法程序。例如,如果一个用户想要更改他们的Shell,他们必须选择`/etc/shells`文件中列出的一个。...

    unix系统配置文件.pdf

    - `/etc/resolv.conf` 文件用于配置DNS解析器。 28. **/etc/smb.conf & /etc/sysconfig/** - `/etc/smb.conf` 文件用于配置Samba服务。 - `/etc/sysconfig/` 目录下的文件用于配置系统服务。 29. **/etc/issue...

    linux配置文件[参照].pdf

    本文将详细解析几个关键的配置文件,包括`/etc/passwd`、`/etc/group`和`/etc/fstab`,以及与这些文件相关的安全性和命令。 1. `/etc/passwd`文件 `/etc/passwd`是Linux中存储用户基本信息的文件,包括用户名、...

    理解 Linux 配置文件

    - **用户权限与文件权限管理**:内核通过读取诸如 `/etc/passwd` 和 `/etc/group` 这样的文件来管理用户和组的权限。这些文件存储了用户和组的基本信息,以及用户可以访问哪些资源。 - **网络配置**:网络相关的配置...

Global site tag (gtag.js) - Google Analytics