2016-04-08 8 views
2

Ich habe ein RasPi und ich versuche tatsächlich ein Shellscript auszuführen, um bei jedem Reboot einen Ordner automatisch zu mountern. Script-Befehl ist: sudo -t cifs 'FolderPath' 'pointtomount' -o username = xxx, password = xxx montieren, s = ntlmCrontab führt Shell-Skript aus: Mount error (13): Berechtigung verweigert

Es funktioniert perfekt, wenn ich es manuell verwenden, aber über Cronjob es Antworten „Berg Fehler (13): Berechtigung verweigert "und der Mount kann nicht ausgeführt werden. Bedeutet Cronjob führt die Datei mindestens aus.

Meine Idee war es, es manuell zu mounten und zu prüfen, ob Automount in/etc/fstab oder/etc/mtab deaktiviert ist. Da es nur ein Ordner ist, habe ich es nur in mtab gefunden. Ich kann nicht darin schreiben, aber nirgendwo ist "noauto" in den Optionen so wahrscheinlich ist alles korrekt.

Nicht sicher, ob es etw. gemeinsam mit Crontab ausführen Rechte, aber ls -lha/usr/bin/crontab Ausgabe ist -rwxr-sr-x 1.

Wenn jemand von Ihnen irgendwelche Hinweise bekommen, wie dieses Problem zu lösen, würde ich mich über Hilfe freuen. Dank

EDIT1:

Okay, nach Stunden und Stunden scheint es in /home/pi/.config/lxsession/LXDE-pi/autostart.sh (Typ „sudo nano/home/pi zu arbeiten/.config/lxsession/LXDE-pi/autostart.sh "). In dieser Datei habe ich "@/home/pi/scripttoexecute.sh" geschrieben. In meinem Execscript schrieb ich "sudo mount -t cifs 'foldermount' 'Verzeichnispfad' -o Anmeldeinformationen =/root/.smbcredentials, iocharset = utf8, Datei_Modus = 0777, dir_mode = 0777, sec = ntlm". Um die Datei smbcredentials zu verwenden, schreiben Sie bitte "sudo nano /root/.mbcredentials" und dort "username = xxx" und die nächste Zeile "password = xxx" und optional domain. Vielen Dank an alle und ich hoffe, dass dies jemand anderen Zeit sparen könnte. Nicht sicher, ob es mit apt-get upgrade und apt-get update schon etwas gemeinsam hat.

Antwort

3

Paar Dinge hier, zuerst einmal jeder Benutzer kann ihre eigene Crontab haben. Zum Beispiel:

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 

Eine andere Sache ist, dass, wenn Sie nicht crontab -e verwenden, um die Datei zu bearbeiten, und bearbeiten Sie tatsächlich die /etc/crontab Datei direkt (so etwas wie vim /etc/crontab), können Sie tatsächlich den Benutzer festlegen, die Sie möchten

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

Vielen Dank im Voraus schon. Ich benutzte Crontab -e für den tatsächlichen Benutzer und schrieb es auch in sudo crontab -e, was dasselbe wie crontab -u root -e sein sollte, nicht wahr? Ich werde Ihre Ideen versuchen und Sie auf dem Laufenden halten. Atm ist es sowieso seltsam, manchmal ist es bereits beim Start gemountet und manchmal mount es wie ich will (Cronlog Benachrichtigungen) und manchmal bekomme ich Berechtigungen verweigert, das ist irgendwie seltsam .. – LinkM

+0

Ja, 'sudo crontab -e' sollte sein Dasselbe gilt für 'crontab -u root -e', obwohl für letzteres möglicherweise' sudo' verwendet werden muss. Übrigens, ich habe Ihre Frage noch einmal gelesen, und ich fragte mich, warum das ein Cron sein muss?Wenn Sie möchten, dass dies beim Neustart ausgeführt wird, sollten Sie den Befehl in ein Skript einfügen, das bei Neustarts ausgeführt wird, anstatt es in einem Cron zu haben. Vielleicht eine Datei wie 'rc.local'. Nicht genau, was du versuchst zu tun, oder wie rasberry Pi funktioniert, aber du kannst [this] (https://www.raspberrypi.org/documentation/linux/usage/rc-local.md) nützlich finden. – drewyupdrew

+1

Okay, endlich funktioniert es .. Keine Ahnung, warum es nicht sofort funktioniert hat, aber nach all der rc.local-Datei war das Richtige. Für alle mit demselben Problem: "sudo nano /etc/rc.local" und dort "/ bin/mount -t cifs 'foldertomount' 'mountpoint' -o benutzername = xxx, password = xxx, sec = ntlm" Ich bin immer noch verwirrt, warum es zuerst nicht funktioniert hat, aber vielen Dank für Ihre Mühe. – LinkM

1

um über root crontab beim Neustart auszuführen, geben Sie:

sudo crontab -e 

Und fügen Sie diese Zeile: die cron als laufen

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

Aber wirklich, sollten Sie nicht adding your auto-mounts to /etc/fstab sein?

+0

Ich habe genau das gemacht ... Keine Ahnung warum, aber es hat nicht funktioniert. Versucht, es durch rc.local zu mounten, aber es wurde abgehört und bekam nicht, wie ich in fstab schreiben kann. Von einem Tag zum anderen funktioniert es irgendwie jedes Mal. Definitiv nicht über crontab, weil ich das Skript deaktiviert habe und es trotzdem gemountet wird. Keine Ahnung, wie es jetzt montiert wird, aber es funktioniert ... Danke für den Vorschlag und das Tutorial, werde es versuchen, um sicherzustellen, dass es jedes Mal montiert wird. – LinkM