/etc/passwd 详解

/etc/passwd 详解

/etc/passwd 文件每行对应一个用户的信息。

每一行中的字段用 ":" 隔开,每个字段的含义分别是

用户名: 密码: UID(用户 ID): 用户所属初始 GID(组 ID): 描述性信息: 用户的主目录: 默认 Shell

用户名

密码

"x" 表示此用户设有密码,但不是真正的密码,真正的密码保存在 /etc/shadow 文件中。

在早期的 UNIX 中,这里保存的就是真正的加密密码串,但由于所有程序都能读取此文件,非常容易造成用户数据被窃取。

虽然密码是加密的,但是采用暴力破解的方式也是能够进行破解的。

因此,现在 Linux 系统把真正的加密密码串放置在 /etc/shadow 文件中,此文件只有 root 用户可以浏览和操作,这样就最大限度地保证了密码的安全。

需要注意的是,虽然 "x" 并不表示真正的密码,但也不能删除,如果删除了 "x",那么系统会认为这个用户没有密码,从而导致只输入用户名而不用输入密码就可以登陆(只能在使用无密码登录,远程是不可以的),除非特殊情况(如破解用户密码),这当然是不可行的。

UID

UID ,也就是用户 ID 。每个用户都有唯一的一个 UID ,Linux 系统通过 UID 来识别不同的用户。

实际上,UID 就是一个 0 ~ 65535 之间的数,不同范围的数字表示不同的用户身份如图所示

GID

全称“Group ID”,简称“组ID”,表示用户初始组的组 ID 号。这里需要解释一下初始组和附加组的概念。

初始组,指用户登陆时就拥有这个用户组的相关权限。每个用户的初始组只能有一个,通常就是将和此用户的用户名相同的组名作为该用户的初始组。比如说,我们手工添加用户 lamp ,在建立用户 lamp 的同时,就会建立 lamp 组作为 lamp 用户的初始组。

附加组,指用户可以加入多个其他的用户组,并拥有这些组的权限。每个用户只能有一个初始组,除初始组外,用户再加入其他的用户组,这些用户组就是这个用户的附加组。附加组可以有多个,而且用户可以有这些附加组的权限。

举例来说,刚刚的 lamp 用户除属于初始组 lamp 外,我又把它加入了 users 组,那么 lamp 用户同时属于 lamp 组和 users 组,其中 lamp 是初始组,users 是附加组。

当然,初始组和附加组的身份是可以修改的,但是我们在工作中不修改初始组,只修改附加组,因为修改了初始组有时会让管理员逻辑混乱。

需要注意的是,在 /etc/passwd 文件的第四个字段中看到的 ID 是这个用户的初始组。

描述性信息

这个字段并没有什么重要的用途,只是用来解释这个用户的意义而已。

主目录

也就是用户登录后有操作权限的访问目录,通常称为用户的主目录。

例如,root 超级管理员账户的主目录为 /root,普通用户的主目录为 /home/yourIDname ,即在 /home/ 目录下建立和用户名相同的目录作为主目录,如 lamp 用户的主目录就是 /home/lamp/ 目录。

默认 Shell

Shell 就是 Linux 的命令解释器,是用户和 Linux 内核之间沟通的桥梁。

我们知道,用户登陆 Linux 系统后,通过使用 Linux 命令完成操作任务,但系统只认识类似 0101 的机器语言,这里就需要使用命令解释器。也就是说,Shell 命令解释器的功能就是将用户输入的命令转换成系统可以识别的机器语言。

通常情况下,Linux 系统默认使用的命令解释器是 bash(/bin/bash),当然还有其他命令解释器,例如 sh、csh 等。

在 /etc/passwd 文件中,大家可以把这个字段理解为用户登录之后所拥有的权限。如果这里使用的是 bash 命令解释器,就代表这个用户拥有权限范围内的所有权限。例如

[root@localhost ~]# vi /etc/passwd

lamp:x:502:502::/home/lamp:/bin/bash

我手工添加了 lamp 用户,它使用的是 bash 命令解释器,那么这个用户就可以使用普通用户的所有权限。

如果我把 lamp 用户的 Shell 命令解释器修改为 /sbin/nologin ,那么,这个用户就不能登录了,例如

[root@localhost ~]# vi /etc/passwd

lamp:x:502:502::/home/lamp:/sbin/nologin

因为 /sbin/nologin 就是禁止登录的 Shell 。同样,如果我在这里放入的系统命令,如 /usr/bin/passwd ,例如

[root@localhost ~]#vi /etc/passwd

lamp:x:502:502::/home/lamp:/usr/bin/passwd

那么这个用户可以登录,但登录之后就只能修改自己的密码。但是,这里不能随便写入和登陆没有关系的命令(如 ls),系统不会识别这些命令,同时也就意味着这个用户不能登录。

相关推荐

js的object如何赋值
www.365bet.com亚洲版

js的object如何赋值

📅 07-03 ⭐ 4027
手机吊绳
office365输入账号

手机吊绳

📅 09-13 ⭐ 8886
红米哪个地方出产的好 十大优质红米产地
office365输入账号

红米哪个地方出产的好 十大优质红米产地

📅 08-08 ⭐ 5778
日本人自己都不吃福岛的鱼了,放射性“铯”有多毒?
q版京剧人物包公简笔画步骤图文教程
www.365bet.com亚洲版

q版京剧人物包公简笔画步骤图文教程

📅 08-26 ⭐ 4833
顶级富豪用机盘点:马云最爱iPhone,国产折叠屏成王石、丁磊新宠
推荐阅读 ❤️