首页 文章

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

提问于
浏览
2

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

如果我手动使用它但它通过cronjob响应“Mount Error(13):Permission denied”并且挂载无法执行,它的工作完美 . 意味着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 回答

  • 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

    要在重新启动时通过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吗?

相关问题