是否可以在没有权限使用crontab的情况下使用'whatever'ruby gem?

时间:2012-11-06 14:28:30

标签: ruby gem debian crontab whenever

我即将编写一个以预定方式执行某些ruby脚本的脚本。 生产环境:运行debian的企业集群,对用户具有受限权限,因此我没有编辑cron表文件的权限。我可以随时使用红宝石宝石吗? 红宝石1.9.1 谢谢你的回答。

2 个答案:

答案 0 :(得分:3)

gem whenever使用crontab [CRONTAB FILE]来编写它的crontabs。如果配置为为其他用户设置crontab,则使用crontab -u [USER] [CRONTAB FILE]。以下lib/whenever/command_line.rb的摘录显示了命令的生成方式。

def write_crontab(contents)
  …
  command = ['crontab']
  command << "-u #{@options[:user]}" if @options[:user]
  command << tmp_cron_file
  …
end

因此,如果执行whenever命令的用户帐户无法执行上面列出的命令,我很确定whenever无法按预期工作。

用户选项可以这样给出:whenever --user someone

答案 1 :(得分:1)

要从crontab运行的脚本必须以某个用户身份运行才能工作。如果您有权以该用户身份运行脚本,那么您还应该有权访问该用户的crontab,而不是root用户的crontab。只要你有这个,你就应该能够使用whatever gem为该用户的crontab创建和编辑cron作业。

如果没有这个限制,那么只需通过其他用户的crontab运行脚本就可以获得root权限,当然你不希望这样做。