highlife schrieb:
Die Konfiguration von ssh bringt hier nicht. Die Nutzer müssen sich anmelden dürfen, aber gleichzeitig nur zum Ausführen eines bestimmten Skripts in der Lage sein.
Möglicherweise ist folgendes Vorgehen ausreichend; das von mir allerdings nur unter meiner Xubuntu 10.04-Installation getestet wurde. Vermutlich aber auch für Ubuntu (Gnome) anwendbar.
Zunächst habe ich einen Benutzer angelegt, der über kein eigenes Home-Verzeichnis verfügt:
sudo adduser --no-create-home <benutzer2>
Es muss ein Passwort angegeben werden (ich habe mir welche mit 'pwgen' erzeugen lassen). Dann abgemeldet und <benutzer2> angewählt. Unter Xubuntu 10.04 habe ich auf dem Anmeldebildschirm ein Panel, auf dem eine Sitzungs/Session-Auswahl möglich ist:
Xubuntu Session
Xfce-Sitzung
xterm
Mit dem ohne Home-Verzeichnis angelegten <benutzer2> kann ich nur xterm anwählen und habe dann ausschließlich ein Terminal-Fenster, in dem ich nur sehr eingeschränkt agieren kann. Mit exit verlassen und zum Anmeldebildschirm zurückkehren.
Mit dem Benutzer <administrator> anmelden. Im Terminal kann ich mittels
<administrator>@rechner:~$ su <benutzer2>
Passwort:
zu <benutzer2> wechseln und mittels id mir seine Gruppen anzeigen lassen. Mit exit verlassen.
Ob es wirklich wichtig ist kann ich nicht genau sagen; es scheint mir aber sinnvoll zu sein, für weitere Benutzer und das zu verwendende Skript eine neue Gruppe <sonderrechte> zu erzeugen:
sudo groupadd <sonderrechte>
Bestehenden Benutzer einer bestehenden Gruppe hinzufügen:
sudo usermod -aG <sonderrechte> <benutzer2>
Aktuellen Benutzer <administrator> hinzufügen und Gruppenzugehörigkeit sofort aktivieren:
sudo adduser <administrator> <sonderrechte>
newgrp <sonderrechte>
Anschließend mit id überprüfen.
Ich habe eine Textdatei test.txt mit Inhalt hallo Welt erzeugt, um den Zugriff und die Rechte zu prüfen.
<administrator>@rechner:~$ cat test.txt
hallo Welt
Erstmal an einem Ort hinterlegen, an dem alle Benutzer sie erreichen können:
sudo cp test.txt /test.txt
Damit liegt die Datei im Verzeichnisbaum unter 'root' (/). Dann den Eigentümer auf root und die Gruppe auf <sonderrechte> ändern:
sudo chown root:<sonderrechte> /test.txt
Zuletzt die Rechte ändern und für alle Benutzer les-, schreib- und ausführbar machen:
sudo chmod a+rwx /test.txt
Anzeigen lassen mit:
ls -l /test.txt
Jetzt kann ich als angemeldeter <benutzer2> weitgehend ausschließlich nur diese eine Datei manipulieren:
<benutzer2>@rechner:/home/<administrator>$ nano /test.txt
Könnte sein, dass dieses Vorgehen den Anforderungen an dein Skript genügt; allerdings vermutlich ohne die von mir im Test gesetzten Schreibrechte.
Nachschlagen:
Befehlsreferenz_1
Befehlsreferenz_2
man adduser