我正在尝试使用来自跳转主机的for循环来更新1000+系统的crontab文件。
以下不起作用。
echo -e 'pass365\!\n' | sudo -S echo 'hello' >> /var/spool/cron/root
-bash: /var/spool/cron/root: Permission denied
我在sudoers文件中有(ALL)ALL。
答案 0 :(得分:1)
以下对我有用。
echo 'pass365\!' | sudo -S echo 'hello' | sudo -S tee -a /var/spool/cron/root > /dev/null
答案 1 :(得分:1)
这是另一种解决方案;
echo 'pass365\!' | sudo -S bash -c 'echo "hello">> /var/spool/cron/root'
答案 2 :(得分:0)
问题1:您正尝试通过echo将密码发送到sudo。 问题2:你不能在sudo命令中使用shell重定向。
在这两者之间,考虑设置ssh公钥授权并执行
ssh root@host "echo 'hello' \>\> /var/spool/cron/root"
你可能最终会让sudo工作,但这会比这更痛苦。