红联Linux门户
Linux帮助

自动添加sudo权限脚本

发布时间:2014-08-05 09:56:13来源:linux网站作者:uselinux

前言:

作为一个运维人员,经常会有开发的同事审请一些服务器的sudo权限,而且有同事离职,也需要将sudo权限移除,(开发同事离职之后并不是马上就要将其帐号删除,至少要保存三个月的时间 ),服务器少了还好说,那如果有几十台的话,那就不好办了,自己写了一个简单的脚本,也方便了运维的工作,贴出来给大家分享下,有不对的地方还请大家多指教!


1、添加sudo的脚本

#cat addsudo.sh

#!/bin/bash
# Owner by Only.liu
# date 2012/11/01
HOSTLIST="/opt/qunar/tools/etc/adduser_hosts.cf"
SUDOFILE="/etc/sudoers"
#
for HOST  in `cat ${HOSTLIST}`
do
ssh only.liu@${HOST} 'sudo grep "'$1'" '${SUDOFILE}'' > /dev/null
if [ "$?" != 0 ]
then
echo "User $1 on ${HOST} not have sudo!"
ssh only.liu@${HOST} 'echo "'$1' ALL=(ALL) NOPASSWD:ALL,!/bin/su"' >> ${SUD
OFILE} && echo "User $1 add sudo success!"
else
echo "User $1 already have sudo!"
fi
done
~


2、删除sudo的脚本
 
#cat delsudo.sh
 
#!/bin/bash
# Owner by Only.liu
# date 2012/11/01
HOSTLIST="/opt/qunar/tools/etc/adduser_hosts.cf"
SUDOFILE="/etc/sudoers"
#
for HOST  in `cat ${HOSTLIST}`
do
ssh only.liu@${HOST} 'sudo grep "'$1'" '${SUDOFILE}'' > /dev/null
if [ "$?" = 0 ]
then
echo "User $1 on ${HOST} have sudo!"
ssh only.liu@${HOST} 'sudo sed -i '/$1/d' '${SUDOFILE}'' && echo "User $1 o
n ${HOST} delete success!"
else
echo "User $1 on ${HOST} already delete sudo!"
fi
done

 
示例:
 
若要添加tom的sudo权限:
 
#sudo ./addsudo.sh tom
 
若要删除tom的sudo权限:
 
#sudo ./delsudo.sh tom

 
注解:
 
先通过我的帐号only.liu ssh所要加sudo权限的机器,通过grep 命令查看机器的/etc/sudoers文件中是否有同事的帐号,通过退出状态来判断,如果有刚输出User on host have sudo!;若没有,通过sed命令在最后追加一条,最后输出add success!