sudo免密和远程执行shell脚本

一,sudo免密

1,管道符

例:echo 'passwd' | sudo service httpd restart

2,visudo

例:username ALL=(root) NOPASSWD:chown,rsync

username即需要执行sudo免密的用户,chown和rsync即sudo免密的命令

也就是说当username用户执行sudo chown 和sudo rsync时,不用输入密码就能执行

同理,命令也可以是可执行脚本

例:username ALL=(root) NOPASSWD:/home/username/abc.sh

其中abc.sh为可执行脚本,其中一些命令需要root执行

当username用户执行sudo /home/username/abc.sh时,不用输入密码就能执行


二,远程执行shell脚本

1,需求:在A机器上执行脚本,脚本中需要执行B机器上的命令

2,实现

首先,建立A机器用户B登录C机器的用户D互信,

即将A机器的用户B的公钥发给C机器的用户D生成authority_keys

其次,脚本中执行ssh D@C /bin/sh /home/D/abc.sh

即可实现在A机器上用B用户登录C机器上的D用户执行C机器上的脚本/home/D/abc.sh





你可能感兴趣的:(linux)