Problem Berechtigung Skript

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Hellibo

Benutzer
Registriert
10. Mai 2017
Beiträge
5
Reaktionspunkte
0
Punkte
0
Hallo Leute, ich habe seit kurzem eine DS215j und ich bin gerade dabei mir eine Backuplösung einzurichten. Diese soll ein Skript per Aufgabenplaner ausführen welches einen Hyperbackup Job startet. Das ist mein Ziel. Momentan hänge ich an der grundsätzlichen Ausführung von Skripten fest. Auf der DS befindet sich das aktuelle Update DSM 6.1.

Das Problem stellt sich wie folgt dar: ich verbinde mich mit dem Programm WINSCP (als root, mit private Key) mit der DS. Skriptdatei konnte ich abspeichern im Verzeichnis /usr/bin/

Wenn ich mich jetzt per Telnet verbinde (mit einem Benutzer der admin Gruppe) und per sudo -i zum root Benutzer wechsel sagt mir die DS beim Versuch das Skript auszuführen: permission denied. Das kann ich leider nicht nachvollziehen und ich hoffe ihr könnt mir da helfen. Der Besitzer der Skriptdatei ist root.

Auf eine andere Art funktioniert es, wenn ich mich mit dem selben Benutzer der admin Gruppe per Browser auf die DS verbinde und im Aufgabenplaner das Skript manuell starte, wird es ausgeführt. Das sehe ich da ich das logging aktiviert habe, er erstellt mir dann eine Output.log Datei. Ich würde das nur gerne direkt im Telnet Fenster ausführen da ich so schneller sehe was beim eigentlichen skript schief läuft.
 
Willkommen im Forum!

Wie rufst Du die Skriptdatei auf? Gehst Du ins Verzeichnis, in dem sie liegt, und startest sie dann per ./script.sh? Welche Rechte hat das Skript? 744?
 
Genau, ich gehe ins Verzeichnis und rufe sie dann mit test.sh auf, sieht so aus:

root@DS215j:/usr/bin# test.sh
-ash: /bin/test.sh: Permission denied

Bei den Rechten steht 0644, Besitzer ist root
 
Ok, beides ist nicht gut. Starte nicht mit test.sh sondern - wie ich oben schon schrieb - mit ./test.sh. Und setze die Rechte auf 0744, dann ist das Skript ausführbar für den Eigentümer root.
 
Super, jetzt klappt es. Kannst du mir noch sagen warum genau das vorher nicht ging. Was genau ist der Unterschied zwischen 0644 und 0744. Und weshalb ist es besser das Skript mit ./test.sh zu starten?
 
Hier die Kurzform: 6 gibt Schreib-/Leserechte, nicht aber das Ausführungsrecht, dafür brauchst Du die 7. Wenn Du mit ./ startest, wird der aktuelle Pfad verwendet. Startest Du ohne Pfad, wird über die PATH-Variable gesucht. Steht da . nicht drin, was oft aus Sicherheitsgründen so ist, funktioniert der Start nicht.
 
chmod 0abc (eigentlich auch abc ohne "0", da dreistellig gemäß ist)

a = lesen (für lesen hat man 4 punkte, für schreiben 2 punkte und für ausführen 1 punkt > muss man die zahlen addieren, um der datei gewisse rechte einzuräumen)
b = schreiben (für lesen hat man 4 punkte, für schreiben 2 punkte und für ausführen 1 punkt > muss man die zahlen addieren, um der datei gewisse rechte einzuräumen)
c = ausführen (für lesen hat man 4 punkte, für schreiben 2 punkte und für ausführen 1 punkt > muss man die zahlen addieren, um der datei gewisse rechte einzuräumen)

also 0777 bzw. 777 = höchste Rechtestufe
 
Die Rechte im Linux-Filesystem werden recht oft im Internet beschrieben.

Eine recht ausführliche Beschreibung gibt es zum Beispiel hier: https://wiki.ubuntuusers.de/Rechte/
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat