允许用户以 root 身份运行程序而无需密码。这会是解决我问题的正确方法吗?

允许用户以 root 身份运行程序而无需密码。这会是解决我问题的正确方法吗?

我有一台服务器,需要永久运行某些程序;其中两个程序出现了问题,我不确定我找到的解决方案是否正确,因此我向在这些问题上更有经验的用户征求意见。

  • 一方面,我有一个 cron-task-launched 脚本,它连接到 FTP 来更新服务器的 IP,因此,如果 IP(它是动态的)发生变化,我可以检查 FTP 以获取当前 IP,这样我就可以连接到服务器。

  • 另一方面,我有一个由 wine 启动的程序,它也需要连接到另一个 FTP 帐户并时不时执行需要 root 权限的其他命令。

我有什么问题?

如果我登录并启动这些进程,它们会完美运行数小时,即使我让会话“进入阻止密码询问屏幕”,我猜是因为它们经常执行需要 root 密码的进程(可能每 2-10 分钟一次),但如果它们停止执行这些进程,例如,它们在 5 或 10 小时内不需要连接到 FTP,那么在那之后它们就无法再这样做,直到我再次登录,而在那一刻它们就可以再次连接到 FTP。

因此,在阅读了有关它的大量信息后,我猜解决方案是编辑 /etc/sudoers 并添加类似于以下的一行:

user_X ALL=NOPASSWD:/home/user_X/script.sh

因此,此用户(在其会话上运行的进程)能够永久访问 FTP。事实上,wine 启动的进程,即使我登录也无法再次连接,所以我猜 wine 需要它自己的权限,所以也许我应该做点不同的事情来代替它?

我不确定这是否是正确的解决方案。有人可以确认一下吗?

提前致谢。

编辑:

用于编辑 cron 任务的命令:

sudo crontab -u root -e

我添加了一行来(尝试)使其工作:

*/30 * * * * /home/user_X/check_public_IP.sh > /home/user_X/Desktop/cron_res.txt

相关内容