Linux 服务器集群管理
这部分内容通常都需要root权限,普通用户是不允许操作的,除了修改自身密码。
用户管理
添加普通用户的过程比较繁琐,至少包括如下几个部分:
- 添加用户(创建用户,组,密码)
- 更新 nis 数据库
- ssh配置:(注意到所有节点都共享
/home
目录,因此这个过程实际上简化了很多)- 在
~/.ssh/
生成密钥对 - 将公钥添加到
~/.ssh/authorized_keys
,并确保其具有正确的644权限 - 将模板
known_hosts
复制给新用户,其中保存了当前集群的所有节点的公钥指纹 - 确保
~/.ssh/
的所有者和所在组为新用户
- 在
- 将模板
.bashrc
复制到新用户家目录下,并修改其所有者和所在组
添加新用户的
my_adduser.sh
脚本是在原始脚本基础上修改的,放在fenglielie/scripts仓库,便于版本控制。
删除普通用户但保留家目录,加上 –r
选项可以附带删除家目录,这和普通Linux系统没什么区别 1
2userdel 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
2cd /var/yp/
make
输出形如 1
2
3
4
5
6
7gmake[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
2tentakel -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'