sudo应用

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 wang@192.168.200.99 "/usr/bin/sudo /usr/sbin/userdel -r user1"
wang@192.168.200.99's password:
[root@BETA2 ~]#
这里提示输入passwd,是因为没有做ssh免登录,接下来我又做了ssh免登录
 
 
参考连接:
http://hi.baidu.com/%CD%FC%D5%E6%E9%AA/blog/item/9d550f4b43447438afc3ab9c.html
http://www.51testing.com/?uid-225738-action-viewspace-itemid-216699
http://linux.vbird.org/linux_basic/0410accountmanager.php#visudo
http://www.tygbless.tk/?p=121
 

你可能感兴趣的:(linux,ssh,职场,sudo,休闲)