📜  了解 /etc/passwd 文件

📅  最后修改于: 2022-05-13 01:57:27.104000             🧑  作者: Mango

了解 /etc/passwd 文件

/etc/passwd文件是 Linux 操作系统中最重要的文件。该文件存储有关系统上用户的基本信息。该文件归 root 用户所有,要编辑该文件,我们必须具有 root 权限。但是尽量避免编辑这个文件。现在让我们看看这个文件的实际外观

该文件每行包含一个条目。这意味着它将一个用户的信息存储在一行上。用户信息包含七个字段,每个字段由冒号 ( : ) 符号分隔。 /etc/passwd 文件中的每个条目如下所示:

现在让我们一一了解每个字段:

  1. 用户名:此字段存储登录系统时使用的用户名。 此字段的长度介于 1 到 32 个字符之间。
  2. 密码:此字段存储用户的密码。 x字符表示密码以加密格式存储在 /etc/shadow 文件中。 我们可以使用passwd命令来更新这个字段。
  3. 用户 ID(UID) :用户标识符是分配给每个用户的编号 操作系统来引用用户。 0 UID 是为 root 用户保留的。 并且 1-99 UID 保留给其他预定义的帐户。并且 100-999 由系统保留用于管理和系统帐户/组。
  4. 组 ID(GID) :组标识符是表示主要用户组的数字。 大多数时候它是 与 UID 相同。
  5. 用户 ID 信息 (GECOS) :这是一个注释字段。 此字段包含S信息,如用户的电话号码,地址,或者用户的全名。 该字段由finger命令用于获取有关用户的信息。
  6. 主目录:此字段包含用户主目录的绝对路径。 默认情况下用户创建在 /home 目录下。 如果此文件为空则该用户的主目录将为 /
  7. 登录shell :该字段存储用户shell 的绝对路径。 这个shell在用户登录系统时启动。

现在我们已经了解了 /etc/passwd 文件的文件结构,现在让我们看一下这个文件的一个例子。您可以使用 cat 文件查看文件的内容,例如:

cat /etc/passwd



我们可以看到有很多用户拥有所有信息。

要搜索特定用户,我们可以使用 grep 命令。现在,例如要获取有关用户 Nishant 的信息,我们可以使用以下命令:

grep nishant /etc/passwd

检查 /etc/passwd 文件权限

普通用户对 /etc/passwd 文件只有读权限。唯一的 root 用户可以写入这个文件。要查看/etc/passwd文件的权限,我们可以使用ls命令如下:

ls -l /etc/passwd

输出将是

我们可以看到文件 /etc/passwd 的权限是rw-r–r– 。这意味着 root 用户具有读写访问权限,而其他组和用户对该文件具有只读访问权限。

要获得更多详细信息,如大小,修改此文件的时间,我们可以使用 stat 命令:

stat /etc/passwd

读取 /etc/passwd 文件:

我们可以通过使用 while 循环和 IFS 分隔符来更方便地读取 /etc/passwd 文件。 while 循环用于遍历文件,IFS 是一个特殊变量,用于通过特定字符分隔字符串。

#!/bin/bash

# using while loop to iterate through file
while IFS=: read -r f1 f2 f3 f4 f5 f6 f7        
do
echo "User $f1 use $f7 shell and stores files in $f6 directory."
done < /etc/passwd                             

使用此脚本后,我们得到以下输出: