我已经编辑了我的根crontab以定期执行一个脚本:
sudo crontab -e它应该以根用户身份执行以下脚本(位于安装的USB上):
* * * * * /mnt/usb0/fake-hwclock-cron.sh然后脚本(1) fake-hwclock-cron.sh运行脚本(2) fake-hwclock以节省当前时间:
#!/bin/sh
echo "$(fake-hwclock save)"脚本(2) fake-hwclock (位于“/sbin/ file hwclock”中)然后将时间节省到安装在USB上的文件(3) fake-hwclock.data。
USB自动挂载有以下选项:
PARTUUID=1c921a37-01 /mnt/usb0 ext4 defaults,auto,users,rw,nofail 0 0文件权限:
(1) -rwxrwxrwx 1 pi pi /mnt/usb0/fake-hwclock-cron.sh
(2) -rwxr-xr-x 1 root root /sbin/fake-hwclock
(3) -rwxrwxrwx 1 pi pi /mnt/usb0/fake-hwclock.data如果我理解正确的话,对于文件(1) fake-hwclock-cron.sh和(3) fake-hwclock.data,每个用户都可以读/写/执行。对于文件(2) fake-hwclock,每个用户都可以读取/执行。
。。但是忽略这些权限一秒钟,作为sudo执行的cron作业是否也执行带有su权限的脚本(1) fake-hwclock-cron.sh?
更令人困惑的是:我可以在shell中没有su权限的情况下执行这两个脚本(1) / (2),但我不能使用su权限作为cron作业执行它们。
所以,有人能向我解释一下为什么我被“拒绝许可”错误吗?
/bin/sh: 1: /mnt/usb0/fake-hwclock-cron.sh: Permission denied
我希望我已经解释得够好了,否则请告诉我
发布于 2022-02-03 10:44:52
根据mount |grep usb0的输出,它显示挂载点是由noexec选项挂载的,它将阻止您只执行脚本,但是您可以使用shell解释器直接执行它,例如:
* * * * * sh /path/to/script.sh对于后面的错误fake-hwclock: not found,您需要提供完整的fake-hwclock逗号。
请参阅有关诺埃克的更多信息。
https://unix.stackexchange.com/questions/689100
复制相似问题