Linux 常用命令:用户和组管理

用户&组数据文件

用户清单通常保存在 /etc/passwd 文件内,把哈希编码后的密码保存在 /etc/shadow 文件内。这两个文件都是纯文本档,以简单的格式保存,可以用文本编辑器读取与修改。每个用户占一行,其字段以冒号分隔 (“:”)。

  • /etc/passwd 用户清单,按固定顺序记录字段,并以 : 隔开,如:admin:x:1000:1000::/home/admin:/bin/bash,字段清单:
    • 用户名,例如 admin;
    • 密码: 用 DES, MD5, SHA-256 或 SHA-512 加密过的密码,特殊值 x 表示密码保存在 /etc/shadow 文件;
    • uid:用于辨识用户的不重复数字;
    • gid:用户主要群组 (Debian 的默认值系为每个用户创建一个群组) 的不重复号码;
    • GECOS:用户常规信息,类似于备注,例如其真实姓名和电话号码等;
    • 登入目录,登录后进入该目录,用于保存用户的个人文件 (环境变量 $HOME 通常指向此处);
    • 登录时运行的程序。通常是命令解译器 (shell),若指定为 /bin/false (不做任何事并立即回到控制),则用户无法进入系统;若指定为 /usr/sbin/nologin 则是禁止登录。
  • /etc/shadow 保存用户密码,含以下的字段:
    • 用户名;
    • 加密的密码;
    • 管理密码期限的字段。
  • /etc/group 用户组信息,包括以下的字段:
    • 群组名称;
    • 密码 (可选):只在加入群组时会用到 (使用 newgrp 或 sg 命令,见专栏 基本知识 在多个群组工作);
    • gid:不重复的群组识别码;
    • 成员清单:属于此群组的用户名清单,以逗号分隔。
阅读更多