![在 cronjob ubuntu 服务器中需要 sudo 来发送 logwatch 文件](https://linux22.com/image/1321448/%E5%9C%A8%20cronjob%20ubuntu%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%AD%E9%9C%80%E8%A6%81%20sudo%20%E6%9D%A5%E5%8F%91%E9%80%81%20logwatch%20%E6%96%87%E4%BB%B6.png)
我在 ubuntu 服务器上配置了 logwatch,以在 /tmp/logwatch.html 中创建 html 文件
我还安装了 sendEmail smpt 发送器。
我试图像这样使用 sendEmail:
sendEmail -v -f [email protected] -s smtp.gmail.com:587 -xu username -xp xxxpassword -t mymail -o tls=yes -u Security Audit -m logwatch Reports -a /tmp/logwatch.html
它给我错误无法找到文件,显然是因为 logwatch.html 是用 600 权限创建的。
如果我使用 sudo 执行此操作,它就可以工作并且我可以正确收到邮件。
问题是我需要创建 bash 脚本并按 cron 执行它。
bash 中的 sudo 不起作用,对吧?如果你处在我的位置,你会怎么做?我更喜欢一个简单的解决方案。
- 让logwatch写入文件并设置权限666。但我找不到这个选项。
- 在 bash 文件中写入 sudo,但是如何传递密码?
- 还要别的吗?
答案1
要以 root 身份执行 cron 作业,您不需要在sudo
每次运行脚本时都使用它。
只需将其添加到 root 的 crontab 中:
sudo crontab -e