一,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