sudo需求,公司程序员某些数据同步后需重启服务,给予root免登录权限固然简单,但存在太大的风险;所以我做了sudo限制,只允许用户从固定IP连接执行指定的命令,不需输入用户名 密码
技术要点:sudo     ssh远程执行命令   ssh免登录
1.useradd  wang  创建用户并设置密码 
   passwd   wang
2.visudo    或 vim /etc/sudoers
    写下如下内容,我用了wang这个用户,让他可以从远程执行 useradd  userdel 命令
#Defaults    requiretty 
Defaults    env_reset
Defaults    env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR \
                        LS_COLORS MAIL PS1 PS2 QTDIR USERNAME \
                        LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION \
                        LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC \
                        LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS \
                        _XKB_CHARSET XAUTHORITY"
root ALL=(ALL)  ALL
wang  localhost,192.168.200.99,192.168.200.245= NOPASSWD:/usr/sbin/useradd,/usr/sbin/userdel
注释:
#Defaults    requiretty  该行需注释,否则会报如下错误
sudo: sorry, you must have a tty to run sudo
 
wang(用户名)  localhost,192.168.200.99,192.168.200.245(允许的IP)= NOPASSWD:/usr/sbin/useradd,/usr/sbin/userdel 执行sudo命令不用输入用户密码
该行的意思是  允许wang这个用户从本地和245这些服务器执行 useradd  和userdel命令localhost,192.168.200.99是本机,
不知道为什么只使用localhost时sudo没有生效
3.测试
IP:192.168.200.99   添加用户名
sudo /usr/sbin/useradd  user1   执行成功
IP:192.168.200.245   远程删除用户名
[root@BETA2 ~]# ssh -p2222 "/usr/bin/sudo /usr/sbin/userdel -r user1"
password:
[root@BETA2 ~]#
这里提示输入passwd,是因为没有做ssh免登录,接下来我又做了ssh免登录
 
 
参考连接: