1、普通用户想使用sudo到root用户下执行一些有root权限的操作需要在被管理机器上做如下操作
1.切换到root用户下,怎么切换就不用说了吧,不会的自己百度去.
2.添加sudo文件的写权限,命令是:
chmod u+w /etc/sudoers
3.编辑sudoers文件
vi /etc/sudoers
找到这行 root ALL=(ALL) ALL,在他下面添加xxx ALL=(ALL) ALL (这里的xxx是你的用户名)
ps:这里说下你可以sudoers添加下面四行中任意一条
youuser ALL=(ALL) ALL
%youuser ALL=(ALL) ALL
youuser ALL=(ALL) NOPASSWD: ALL
%youuser ALL=(ALL) NOPASSWD: ALL
第一行:允许用户youuser执行sudo命令(需要输入密码).
第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码).
第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.
4.撤销sudoers文件写权限,命令:
chmod u-w /etc/sudoers
这样普通用户就可以使用sudo了
例子:
useradd wanstack
echo password | passwd --stdin wanstack
chmod u+w /etc/sudoers
vim /etc/sudoers
root ALL=(ALL) ALL # 这一行是原来就有的
wanstack ALL=(ALL) ALL # 这一行是你自己加的
chmod u-w /etc/sudoers
然后使用如下ansible命令即可
ansible testserver -s -a "tail /var/log/messages"
2、在使用-a参数是如果有空格等情况需要加上双引号或者引号,其中-s表示sudo到root用户下执行,因为普通用户没有权限重启httpd服务
ansible testserver -s -m service -a 'name=httpd state=restarted'
或者双引号
ansible testserver -s -m service -a "name=httpd state=restarted"