是否可以在crontab中以root身份运行Bash文件?

omg*_*omg 19 bash crontab

我需要定期运行Bash文件,它必须是root用户.

那可能吗?

[root@file nutch-0.9]# locate crontab
/etc/crontab
/etc/sysconfig/crontab
/usr/bin/crontab
/usr/share/man/man1/crontab.1.gz
/usr/share/man/man1p/crontab.1p.gz
/usr/share/man/man5/crontab.5.gz
/usr/share/vim/vim71/syntax/crontab.vim
[root@file nutch-0.9]# 
Run Code Online (Sandbox Code Playgroud)

wha*_*ame 20

是的,只需将其添加到root用户的crontab ; 运行crontab -e命令.

cron存储其文件的地方可能有点古怪,所以使用crontab -e命令确保它在正确的位置,我相信它会检查语法.

  • whatsisname建议您使用"crontab -e"命令,而不是直接自行修改crontab文件,该命令将编辑正确的crontab. (3认同)

Fre*_*ory 14

你可以这样做

crontab -e
Run Code Online (Sandbox Code Playgroud)

作为根.


sth*_*sth 7

只需指定root该条目的用户/etc/crontab:

0 0 *  * *  root  somecommand
Run Code Online (Sandbox Code Playgroud)

或者,您也可以使用crontab -eroot用户将命令添加到root的个人crontab中.

  • 这导致 cron 将“root”解释为命令。 (2认同)

小智 5

无论如何,您将需要有权访问root用户帐户。

  1. 您可以按照建议将其添加到根crontab中
  2. 您可以按照建议使用sudo
  3. 您可以使用setuid位。setuid位的问题是它必须是已编译的程序。如果已编译,则可以“ chmod 4755”并将文件的所有者设置为root,它将以root身份运行。如果未编译,则可以用C(或任何其他编译的编程语言)编写一个小的包装程序,该包装程序仅调用您的脚本,并在包装​​程序上设置setuid,并确保该包装程序由root拥有。

我的建议?使用root crontab。这就是它的用途。

此外,sth建议在crontab中没有用户输入...语法为:

# .---------------- minute (0 - 59) 
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ... 
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7)  OR sun,mon,tue,wed,thu,fri,sat 
# |  |  |  |  |
# *  *  *  *  *  command to be executed
Run Code Online (Sandbox Code Playgroud)

如果要在crontab中以root身份输入某些内容,只需登录到root帐户“ crontab -e”,然后瞧瞧... root crontab。