使用没有root的脚本


1

我用不同的命令编写了一个维护脚本。该脚本里面有sudo命令。

现在我想使用crontab,但我的第一个问题是:如何在没有root权限的情况下在用户级别上使用脚本?那可能吗?

之后我想在/ usr / local / maintenance上复制脚本,并希望每周一都使用crontab来运行脚​​本fe

编辑:好的,我现在为launchD决定它。现在我在Global Agents中有一个plist,它运行正常。但只有用户文件。如何将launchD用于sudo命令?


这应该是两个问题,为什么你要复制脚本而不是从那个誓言运行它?如果文字须藤它需要提出的特权,因此必须以root或其他用户身份运行
马克

当用户不在我的网络中时,脚本也应该运行。或者你的意思是“你为什么要复制脚本而不是从那个誓言中运行它?” 我不明白其他的意思:好吧,忘了根。我想用sudo执行它,但是使用已登录的用户(脚本删除用户缓存,还有系统缓存)。
DK

crontab无法执行sudo,因为他们正在清除缓存,我会写为两个单独的脚本,一个用于本地,一个用于系统
Mark

@Mark我明白了。用脚本执行其他脚本?本地 - >系统或系统本地。脚本是这样的:rm -rf ~/Library/Caches sudo rm -rf /System/Library/Caches
DK

分裂的想法是允许一个以root身份运行,另一个以local身份运行,问题是组合它们会给你sudo问题。这样更容易使用两个脚本。
马克

Answers:


1

首先,以root身份运行cron脚本的最佳方法是将其添加到root用户的crontab中。EDITOR="vi" ; sudo crontab -u root -e将允许您编辑根crontab。一旦你这样做,你不需要使用`sudo; 在你的脚本里面。

至于每周四运行它,请查看crontab表的手册页,man crontab -s 5它将解释您需要知道的所有内容。


sudo crontab -u root不起作用。当我尝试使用crontab -e -u root时我会选择一个编辑器,但它不会保存它。我尝试* 13 * * 5 script.sh
DK

好的,我编辑了命令来修复编辑crontab的可能问题。旧版本对我有用,但不适用于香草bash。
托尼·威廉姆斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.