# 本章练习

# 情景模拟题 1

将本服务的账户分开管理,

  • 分为单纯邮件使用者:将该账户加入名为 mail 的初始群组,且此账户不可使用 bash 等 shell 登陆系统。
  • 可登陆系统账户:将该账户加入 youcan 的次要群组

练习期望:

  • 目标:了解 /sib/nologin 的用途
  • 前提:可自行观察使用者是否已经建立等问题
  • 需求:需了解 useradd、groupadd 等指令的用法
# 1. 检查两个群组是否存在,不存在则建立
grep mail /etc/group
grep youcan /etc/group
groupadd youcan

# 2. 创建邮件账户,可以准备脚本来处理
vim popuser.sh
#!/bin/bash
for username in pop1 pop2 pop3
do
	# -g 初始群组; -s 指定 bash; -M 不要创建家目录
	useradd -g mail -s /sbin/nologin -M $username
	echo $username | passwd --stdin $username		# 将密码设置为账户相同
done

sh popuser.sh

# 3. 建立一般账户,同样适用脚本创建
vim loginuser.sh
#!/bin/bash
for username in pop1 pop2 pop3
do
	# -g 初始群组; -s 指定 bash; -M 不要创建家目录
	useradd -G youcan -s /bin/login $username
	echo $username | passwd --stdin $username		# 将密码设置为账户相同
done

sh loginuser.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# 简答题部分

  • root 的 UID 与 GID 是多少?基于这个理由,让 test 这个账户具有 root 权限,怎么做?

    都为 0,可以直接修改 /etc/passwd 中 test 账户的 UID 和 GID 字段变成 0

  • 如何将一个账户暂时停掉?让该账户无法登录?

    由于是暂时失效,不能使用 userdel 来删除,有以下几种方式

    • /etc/passwd 的 shell 字段修改为 /sbin/nologin
    • /ec/shadow 的密码字段,内容前增加一个 !,让密码失效
    • /etc/shadow 第 8 字段关于账户失效日期,设置为小于目前的日期数字
  • 使用 useradd 时,新增账户里面的 UID、GID 还有其他相关的密码控制是哪几个文件配置的?

    /etc/login.defs /etc/default/useradd

  • 在使用 useradd 时,预设情况中,他们家目录就含有一个名称为 www 的子目录,该怎么操作?

    会以 /etc/skel 作为参考目录,可以在该目录下创建一个 www 的目录

  • 简单说明系统账户与一般账户的差别?

    一般而言,为了让系统能够顺利以较小的权限运行,系统会有很多账户,例如 mail、bin、adm 等。为了确保这些账户能够在系统上面具有独一无二的的权限,一般来说 Linux 会保留一些 UID 给系统使用,在 CentOS 5.x 上,小于 500 以下的 UID 即是所谓的系统账户

  • 简单说明,为何 CentOS 建立使用者时,会主动创建一个与账户同名的群组,而不是使用 /etc/default/useradd 的设置?

    不同的 distribution 对于使用者 group 的建立机制不同,主要机制分为两种:

    • public group schemes:给予一个公用的群组,一般来说是 users;以 SUSe server9 为代表
    • private group schemes:创建一个与账户同名的群组,以 CentOS 7.x 为例
  • 如何创建一个使用者 alex,所属群组为 alexgroup,预计使用 csh,他的全名为 “Alex Tsai”,还需要加入 users 群组中

    groupadd alexgroup
    # -g 初始组, -G 次要组,-m 建立家目录
    useradd -c "Alex Tsai" -g alexgroup -G users -m alex
    # 务必先建立群组,才能够建立账户
    
    1
    2
    3
    4
  • 由于种种因素,导致你的用户家目录以后都需要放置到 /account 目录下,该如何配置,让 useradd 时,默认的家目录指向 /account

    最简单的办法是编辑 /etc/default/useradd,将 HOME=/home 改为 /account

  • 要让 dmtsai 使用者,加入 mrcode1、mrcode2、mrcode3 三个群组,且不影响 dmtsai 原本已经支持的次要群组时,需要怎么操作?

    # -a 增加,-G 次要群组,合用就是增加次要群组
    usermod -a -G mrcode1,mrcode2,mrcode3
    
    1
    2