无法让 cronjob 运行安装需要 root 权限的服务的脚本

无法让 cronjob 运行安装需要 root 权限的服务的脚本

我需要在 Ubuntu 18.04 上通过 cron 运行一个脚本,myscript.sh该脚本包含另一个脚本的安装说明等,pluckeye-linux-0.99.40.installer但我遇到了一个繁琐的错误:

有问题的脚本是普鲁克耶一种家长控制应用程序。这需要以 root 身份运行。myscript.sh我在里面放置了

cd "/path/to/pluckeye/"
./pluckeye-linux-0.99.40.installer
  • 当我跑到sudo crontab -e那里

    * 20 * * * "/path/to/myscript.sh"

    然后 Pluckeye 的安装程序返回一个神秘的错误(我正在将 cron 执行的输出重定向到一个文件,以便我可以看到出了什么问题):

    0b8e:24: ca151e1e WARNING 32512 0b8e:33: ca151e1e WARNING 0x30b8e019 0b8e:42: ca151e1e WARNING 0x30b8e019 0b8e:78: ca151e1e WARNING 0x30b8e019 0c2c:14: ca151e1e WARNING 0x30b8e019 0b4c:20: ca151e1e WARNING 0x30b8e019 0c70:48: ca151e1e WARNING 0x30b8e019 FAILED TO INSTALL: 6400

  • 但是当我在 shell 中正常运行安装程序时sudo(否则它会立即返回错误

    I need to be invoked by root
    FAILED TO INSTALL: 11520

    ) 它可以正常工作。


我认为这是因为 cron 使用自己的最小环境。我尝试了在互联网上找到的各种方法,例如使用上述方法

* 20 * * * . $HOME/.profile; "/path/to/myscript.sh"

希望现在安装程序可以正常工作,但这不会改变任何事情。我不想sudo在脚本中放置

cd "/path/to/pluckeye/"
sudo ./pluckeye-linux-0.99.40.installer

正如我所读到的,这会带来安全风险。

我需要做什么才能让 Pluckeye 通过 cron 自行安装?

答案1

也许你会这样做:

  1. 使用 crontab -e
* 20 * * * sh /path/to/myscript.sh
  1. 使用 /etc/crontab
* 20 * * * root cd /path/to/pluckeye/ && sh ./pluckeye-linux-0.99.40.installer

相关内容