这部分内容通常都需要root权限,普通用户是不允许操作的,除了修改自身密码。

用户管理

添加普通用户的过程比较繁琐,至少包括如下几个部分:

  • 添加用户(创建用户,组,密码)
  • 更新 nis 数据库
  • ssh配置:(注意到所有节点都共享/home目录,因此这个过程实际上简化了很多)
    • ~/.ssh/生成密钥对
    • 将公钥添加到~/.ssh/authorized_keys,并确保其具有正确的644权限
    • 将模板known_hosts复制给新用户,其中保存了当前集群的所有节点的公钥指纹
    • 确保~/.ssh/的所有者和所在组为新用户
  • 将模板.bashrc复制到新用户家目录下,并修改其所有者和所在组

添加新用户的my_adduser.sh脚本是在原始脚本基础上修改的,放在fenglielie/scripts仓库,便于版本控制。

删除普通用户但保留家目录,加上 –r 选项可以附带删除家目录,这和普通Linux系统没什么区别

1
2
userdel test1
userdel –r test1

可以附带更新 nis 数据库

1
cd /var/yp && make

修改密码

下面对密码的修改都不会影响到ssh密钥的有效性,当然我们也可以在单独的配置文件中直接禁止使用密码登录,这个操作需要root权限。

普通用户可以使用下面的命令修改自身密码(要先输入旧密码,再输入新密码并重复新密码)

1
2
3
4
# 从管理节点mu01跳转到计算节点cu01上(或者其它任意计算节点)
ssh cu01
# 修改密码
yppasswd

这和普通Linux系统使用的passwd命令是不太一样的:因为需要修改 NIS 数据库中的密码保证在集群中所有节点上同步。

对于密码的设置,最好包括大小写字母,加上数字或特殊字符等,不要直接包含用户名生日等信息。

root用户可以强行修改普通用户密码,如果普通用户忘记了自身密码,也必须要通过root强行修改。 在集群的管理节点的root家目录下执行

1
passwd test01

然后输入新密码并确认。我们还需要保证在集群中的一致性,使用下面的命令保证

1
2
cd /var/yp/
make

输出形如

1
2
3
4
5
6
7
gmake[1]: Entering directory `/var/yp/TS10K'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating netid.byname...
gmake[1]: Leaving directory `/var/yp/TS10K'

root用户修改自身密码时,在集群的管理节点的root家目录下执行

1
2
tentakel -g allm 'echo '<newpassword>' | passwd --stdin root'
echo '<newpassword>' | passwd --stdin root

其中第一个命令会和所有的计算节点通讯,两个命令会修改root用户在管理节点和计算节点的密码。

杂项

/etc/motd文件用于在用户登录后显示系统的欢迎信息或提示信息,文件中的内容会在用户成功登录后显示,可以在其中加入固定的提示信息, 还可以通过/etc/update-motd.d中的脚本动态地生成提示信息。

对于root用户,可以通过tentakel在集群中同时执行指定命令,例如下面的修改/dev/shm权限的操作

1
tentakel -g allm 'chmod 1777 /dev/shm'