35.5. 命令行配置

如果你更喜欢使用命令行工具,或者没有安装 X 窗口系统,请参考本节来配置用户和组群。

35.5.1. 添加用户

要在系统上添加用户:

  1. 使用 useradd 命令来创建一个锁定的用户账号:

    useradd <username>
  2. 使用 passwd 命令,通过指派口令和口令老化规则来给某账号开锁:

    passwd <username>

useradd 的命令行选项在表 35-1中被列出。

选项描述
-c comment用户的注释
-d home-dir用来取代默认的 /home/username/ 主目录
-e date禁用账号的日期,格式为:YYYY-MM-DD
-f days口令过期后,账号被禁用前要经过的天数(若指定了0,账号在口令过期后会被立刻禁用。若指定了-1,口令过期后,账号将不会被禁用)。
-g group-name用户默认组群的组群名或组群号码(该组群在指定前必须存在)。
-G group-list用户是其中成员的额外组群名或组群号码(默认以外的)的列表,用逗号分隔(组群在指定前必须存在)。
-m若主目录不存在则创建它
-M不要创建主目录
-n不要为用户创建用户私人组群
-r创建一个 UID 小于500的不带主目录的系统账号
-p password使用 crypt 加密的口令
-s用户的登录 shell,默认为 /bin/bash
-u uid用户的 UID,它必须是独特的,且大于499。

表 35-1. useradd 命令行选项

35.5.2. 添加组群

要给系统添加组群,使用 groupadd 命令:

groupadd <group-name>

groupadd 的命令行选项在表 35-2中被列出。

选项描述
-g gid组群的 GID,它必须是独特的,且大于499
-r创建小于500的系统组群
-f若组群已存在,退出并显示错误(组群信息不会被改变)。若指定了 -g-f 选项,但是组群已存在,-g 选项就会被忽略

表 35-2. groupadd 命令行选项

35.5.3. 口令老化

为安全起见,要求用户定期改变他们的口令是明智之举。这可以在用户管理器「口令信息」活页标签上添加或编辑用户时做到。

要从 shell 提示下为用户配置口令过期,使用 chage 命令,随后使用表 35-3中的选项,以及用户的用户名。

重要重要
 

要使用 chage 命令,一定要启用屏蔽口令。

选项描述
-m days指定用户必须改变口令所间隔的最少天数。如果值为 0,,口令就不会过期。
-M days指定口令有效的最多天数。当该选项指定的天数加上 -d 选项指定的天数小于当前的日期,用户在使用该账号前就必须改变口令。
-d days指定自从1970年1月1日起,口令被改变的天数。
-I days指定口令过期后,账号被锁前不活跃的天数。如果值为0,账号在口令过期后就不会被锁。
-E date指定账号被锁的日期,日期格式为 YYYY-MM-DD。若不用日期,也可以使用自1970年1月1日后经过的天数。
-W days指定口令过期前要警告用户的天数。

表 35-3. chage 命令行选项

窍门窍门
 

如果 chage 命令后紧跟着用户名(无其它选项),它会显示当前口令的老化数值并运行这些数值被改变。

如果系统管理员想让用户在首次登录时设置口令,用户的初始口令或空口令可以被设置为立即过期,从而强制用户在首次登录后立即改变它。

要强制用户在首次登录到控制台时配置口令,请遵循以下步骤。注意,若用户使用 SSH 协议来登录,这个过程就行不通。

  1. 锁住用户的口令 — 如果用户不存在,使用 useradd 命令来创建这个用户账号,但是不要给它任何口令,所以它仍旧被锁。

    如果口令已经被启用,使用下面的命令来锁住它:

    usermod -L username
  2. 强制即刻口令过期 — 键入下面的命令:

    chage -d 0 username

    该命令把口令最后一次改变的日期设置为 epoch(1970年1月1日)。不管口令过期策略是否存在,这个值会强制口令立即过期。

  3. 给账号开锁 — 达到这一目的有两种常用方法。管理员可以指派一个初始口令或空口令。

    警告警告
     

    不要使用 passwd 来设置口令,因为它会禁用刚刚配置的口令即刻过期。

    要指派初始口令,遵循以下步骤:

    • 使用 python 命令来启动命令行 python 解释器。它的显示如下:

      Python 2.2.2 (#1, Dec 10 2002, 09:57:09)
      [GCC 3.2.1 20021207 (红帽企业 Linux 3 3.2.1-2)] on linux2
      Type "help", "copyright", "credits" or "license" for more information.
      >>>
    • 在提示下,键入以下命令(把 password 替换成要加密的口令,把 salt 替换成恰巧两个大写或小写字母、数字、点字符或斜线字符,譬如 + ab 或 + 12):

      import crypt; print crypt.crypt("password","salt")

      其输出的加密口令类似于 12CsGd8FRcMSM

    • 键入 [Ctrl]-[D] 来退出 Python 解释器。

    • 把加密口令的输出剪贴到以下命令中(不带前后的空格):

      usermod -p "encrypted-password" username

    与其指派初始口令,你还可以使用以下命令来指派空口令:

    usermod -p "" username

    小心小心
     

    使用空口令对用户和管理员来说都很方便,但它却带有一个轻微的危险性 — 用户以外的人可能会首先登录并进入系统。要减小这种威胁,推荐管理员在给账号开锁的时候校验用户是否已经做好了登录准备。

    无论是哪一种情况,首次登录后,用户都会被提示输入新口令。