sudo in einem Shell Skript ohne Passwortabfrage ausführen

FrankST

Mitglied
Thread Starter
Mitglied seit
03.05.2012
Beiträge
70
Hallo,
wir müssen in einem Shellskript die Rechte eines Netzwerkordners nach dem erstellen von Dateien auf 777 ändern, damit die Dateien weiterverarbeitet werden können.
Hierbei kommt jedoch - sofern man "sudo chmod" verwendet - immer eine Passwortabfrage.
Ich bin jetzt soweit, dass ich über das anpassen des sudoers file mittels der Zeile:
"username ALL=(ALL) NOPASSWD ALL"
die Passwortabfrage nicht bekomme, wenn ich das entsprechende Skript ausführe.
Ändere ich das letzte "ALL" jedoch in den Pfad des betroffenen Ordners kommt sofort beim ausführen des Skriptes die Passwortabfrage für sudo.....

Ich gebe den Pfad wie folgt an:
"username ALL=(ALL) NOPASSWD: /Volumes/TEMP/test/testvz/*.*"

Das anpassen dieser Abfrage soll ausschließlich auf erstellten Unterordner erfolgen. Die Ordner werden nach erfolgreicher weiterverarbeitung automatisiert gelöscht.

Habt ihr den einen oder anderen Tip für mich, was ich hier falsch mache bzw. wie ich das realisieren kann ?

Vielen Dank im voraus.

Gruss und ein schönes Wochenende.

Frank
 

roedert

Mitglied
Mitglied seit
05.01.2011
Beiträge
11.487
sudoers bezieht sich auf das mit sudo ausgeführte Programm -in deinem Fall chmod- und nicht auf die Dateien die chmod ändert

Du könntest ein extra script schreiben, das chmod 777 /Volumes/TEMP/test/testvz/*.*
beinhaltet mit Eigentümer root und auch nur von root änderbar. Diese Script erlaubst du deinem User dann in der sudoers ohne weitere Abfrage mittels sudo auszuführen.
 
  • Gefällt mir
Reaktionen: Pucker

FrankST

Mitglied
Thread Starter
Mitglied seit
03.05.2012
Beiträge
70
Vielen Dank für deine Antwort.
Das hatte ich vergessen zu schreiben.... Wir haben ein entsprechendes Script, dass die Rechte anpasst:
#!/bin/bash
sudo chmod 777 /Volumes/TEMP/test/testvz

dieses soll beim Ausführen die Passwortabfrage nicht mehr abfragen...

Gruss,
Frank
 

roedert

Mitglied
Mitglied seit
05.01.2011
Beiträge
11.487
Das sudo aus dem script raus und stattdessen das script mit sudo aufrufen.
In die sudoers kommt dann:
"username ALL=(ALL) NOPASSWD: /pfadzumscript/meinsript.sh"

Aus Sicherheitsgründen Eigner und Änderungsrechte des Scriptes auf root setzen - sonst könnte man da ja noch alles mögliche reinschreiben was ohne Abfrage mit root-Rechten ausgeführt wird.
 

FrankST

Mitglied
Thread Starter
Mitglied seit
03.05.2012
Beiträge
70
Hallo,
Super - das funktioniert !! Vielen, vielen Dank !!! :augen::augen:
Allerdings wird jetzt nur auf das angegebene Verzeichnis die Rechte geändert, Unterordner und Dateien in Unterordnern sind davon nicht betroffen.
Egal, ob ich im Script

chmod 777 /Volumes/Data/test/* oder chmod 777 /Volumes/Data/test/ oder chmod 777 /Volumes/Data/test/*.*
angebe.....

Muss ich das Script für jeden Unterordner erstellen ?
Das wird schwierig, da wir nicht wissen, wie die Unterordner und Dateien heißen...

Oder hab' ich hier einen Denkfehler ?

Gruss,
Frank
 

roedert

Mitglied
Mitglied seit
05.01.2011
Beiträge
11.487
chmod -R 777..... für rekursiv!
 

ruerueka

Mitglied
Mitglied seit
04.04.2004
Beiträge
1.451
Schön, dass es funktioniert. Aber ist der Ansatz wirklich optimal? Sollte man nicht einmal eine passende Berechtigungsstruktur (z.B. mit einer eigenen Gruppendefinition) einrichten und sorge tragen, dass beim Schreiben der Dateien die Dateieigenschaften stimmen, statt ständig (per cron o.ä.) die Berechtigungen neu zu setzen? Aus meiner Sicht sollte der datenerzeugende Prozess unter einer anderen Benutzerkennung arbeiten...
 
  • Gefällt mir
Reaktionen: wegus und roedert

FrankST

Mitglied
Thread Starter
Mitglied seit
03.05.2012
Beiträge
70
Schön, dass es funktioniert. Aber ist der Ansatz wirklich optimal? Sollte man nicht einmal eine passende Berechtigungsstruktur (z.B. mit einer eigenen Gruppendefinition) einrichten und sorge tragen, dass beim Schreiben der Dateien die Dateieigenschaften stimmen, statt ständig (per cron o.ä.) die Berechtigungen neu zu setzen? Aus meiner Sicht sollte der datenerzeugende Prozess unter einer anderen Benutzerkennung arbeiten...
Hallo,
wir haben eine "Quick and Dirty"-Lösung benötigt, um eine Systemumstellung über die Runden zu bekommen.
Inzwischen sind wir mit externer Hilfe soweit, dass wir das System um das es geht, am Active Directory hängen haben und dementsprechend (höchstwahrscheinlich) die entsprechenden Rechte mittels ACL vergeben können.

Gruss,
Frank
 

little_pixel

Mitglied
Mitglied seit
06.06.2006
Beiträge
4.593
Schön, dass es doch noch Klarheit gibt…

Ich habe den ersten Beitrag gelesen und nen Pickel gespürt :D
Scherz beiseite, ACLs sind da das richtige Stichwort.

Viele Grüße
 
  • Gefällt mir
Reaktionen: FrankST
Oben