Crontab:权限被拒绝

Crontab:权限被拒绝

我的 crontab(以用户身份运行)包含以下命令

00-59 00-23 * * *  /usr/bin/smbget -R smb://192.168.10.32/Data -u USER -p PASSWORD

但我收到一个错误

您没有足够的权限访问smb://192.168.10.32/Data/

但同样的命令我从命令行执行(以用户身份运行)。

如何授予 crontab 权限来解决这个问题?

答案1

我遇到了同样的问题,花了大约 6 个小时才找到答案。您可以免费获得:

当您正确登录时,您将拥有一个环境变量 USER=root - 当您从 crontab 运行作业时,它不会出现在您的环境中。

要在 crontab 中为一个命令设置环境变量,只需将其直接放在命令之前(即在时间/日期规范之后)。因此,对于您的情况:

00-59 00-23 * * *  USER=root /usr/bin/smbget -R smb://192.168.10.32/Data -u USER -p PASSWORD

答案2

我会设置 Autofs 来负责挂载 SMB 文件系统。您可以使用凭证文件来使其更安全一些。从那里,您的 cronjob 只需 cp /mnt/smbshare/data /home/whomever/whereever。

Autofs 不会永远保持 SMB 共享处于挂载状态,并且它将帮助您省去尝试弄清楚 cron 内部的那些 SMB 工具的麻烦。

https://help.ubuntu.com/community/Autofs

相关内容