需求背景:
局域网内全公司有50余台Linux服务器,现在有两个运维人员,之前都是使用root账号登录来管理服务器,现在想在每台服务器添加各自的账号,开启sudo权限,并设置密钥登录(密钥提前准备好了)。
需求分析:
功能其实很简单,但是如果逐一登录服务器去配置,一台服务器5分钟,50台我已经不敢想象了……,所以想办法弄得简单些。
搭建简单ftp服务器:
本机利用IIS建立一个ftp服务器,把shell脚本,和管理员公钥放进去,注意允许ftp通过防火墙(详细步骤略)5分钟内可以完成本步骤;浏览器验证下是否成功 ftp://你本机IP地址/
上面废话一堆,上脚本:
#!/bin/sh #添加用户并设置密码 foruserinadmin1admin2 do useradd$user echo$user|passwd--stdin$user#此处我设置的是密码和用户名相同,根据各人需求改 done #开启修改sudoers写权限,默认只读 chmodu+w/etc/sudoers
chmodu-w/etc/sudoers echo"sudo权限已添加"
su-admin1<<EOF mkdir.ssh; chmod700.ssh; cd.ssh; wgetftp://你ftp服务器ip/admin1/authorized_keys; chmod600authorized_keys; exit; EOF
echo "切换到admin2"
su - admin2 <<EOF
mkdir .ssh;
chmod 700 .ssh;
cd .ssh;
wget ftp://你ftp服务器ip/admin2/authorized_keys;
chmod 600 authorized_keys;
exit;
EOF
登录到需要配置的服务器,执行这条命令就行了,10分钟就搞定50余台服务器 ,当然我调试脚本花了30分钟
wget ftp://你ftp服务器ip/adduser.sh&& chmod +x adduser.sh && ./adduser.sh