Crontab执行shell脚本:挂载错误(13):权限被拒绝

时间:2016-04-08 11:45:21

标签: linux shell crontab mount permission-denied

我有一个RasPi,我实际上尝试执行一个shellcript来在每次重启时自动挂载一个文件夹。 脚本命令是: sudo mount -t cifs'folderpath''pointtomount'-o username = xxx,password = xxx,sec = ntlm

如果我手动使用它会很完美,但是通过cronjob它会响应“Mount Error(13):Permission denied”并且无法执行mount。 意味着cronjob至少执行该文件。

我的想法是手动挂载它并检查/ etc / fstab或/ etc / mtab中是否禁用了automount。因为它只是一个文件夹,我只在mtab中找到它。 我无法写入,但选项中没有“noauto”,所以一切都是正确的。

不确定是否有某事。与crontab执行权限相同,但ls -lha / usr / bin / crontab输出为-rwxr-sr-x 1.

如果你们中的任何人有任何线索如何解决这个问题,我会很感激帮助。 感谢

EDIT1:

好几小时后似乎在/home/pi/.config/lxsession/LXDE-pi/autostart.sh中工作(输入“sudo nano /home/pi/.config/lxsession/LXDE-pi/ autostart.sh“)。在那个文件中我写了“@ / home / pi / scripttoexecute.sh”。在我的执行脚本中,我写了“sudo mount -t cifs'foldertomount''directorypath'-o credentials = / root / .smbcredentials,iocharset = utf8,file_mode = 0777,dir_mode = 0777,sec = ntlm”。显然要使用smbcredentials文件,写“sudo nano /root/.smbcredentials”并在其中“username = xxx”和下一行“password = xxx”和可选域。 感谢所有人,我希望这可以节省别人的时间。 不确定它是否与apt-get upgrade和apt-get update有共同之处。

2 个答案:

答案 0 :(得分:3)

在这里结合一些事情,首先关闭每个用户都可以拥有自己的crontab。例如:

crontab -e # Edit crontab of current user
crontab -u root -e # Edit crontab of root user (might need sudo for this)
crontab -u www-data -e # Edit crontab of www-data user

另一件事是,如果您不使用crontab -e来编辑文件,并实际直接编辑/etc/crontab文件(执行vim /etc/crontab之类的操作),您实际上可以指定您要将cron作为以下内容运行的用户:

* * * * * root mount -t cifs /path/to/folder /point/to/mount -o username=xxx,password=xxx,sec=ntlm

答案 1 :(得分:1)

要在重启时通过root的crontab运行,请输入:

sudo crontab -e

并添加以下行:

@reboot mount -t cifs 'folderpath' 'pointtomount' -o username=xxx,password=xxx,sec=ntlm

但实际上,你不应该adding your auto-mounts to /etc/fstab吗?