Es gibt mehrere Möglichkeiten, das hängt davon ab, wie sicher, flexibel und einfach deine Lösung sein soll. http://www.dcoul.de/infos/alle_macht_dem_user.html bietet auch noch weitere Informationen und MÖglichkeiten.

Die Billig-Methode:

Benutze für jeden solchen Befehl su - . Das fragt zwar ständig nach dem root Kennwort, aber das ist am sichersten. :)

Die 'orthodoxere' Methode:

Mache Dich mit dem Programm *sudo* vertraut. Dies erlaubt root, ganz bestimmte Programme mit ganz bestimmten Parametern (zu ganz bestimmten Zeiten) auch ohne Kennwortabfrage normalen Benutzern zur Verfügung zu stellen. Beispiel:

 # /etc/sudoers
 #
 jens    myhost=NOPASSWD: /etc/shutdown -h now

Dies erlaubt mir, auf dem Rechner `myhost' den Befehl shutdown -h now auszuführen (muss dann sudo shutdown -h now aufgerufen werden). Ich kann weder shutdown -r now ausführen noch kann jemand anders shutdown -h now ausführen. Ich benötige dafür kein Kennwort. (Und ich hoffe, ich habe die manpage jetzt richtig verstanden: ich bin mir nicht 100%ig sicher, ob der Syntax oben richtig ist.)

Die flexible Methode:

Funktioniert leider nicht mit allen Programmen, route will es z.B. u.U. gar nicht. Aber ansonsten reicht es, wenn Du eine Gruppe erstellst, sagen wir "trusted", und allen entsprechenden Programmen folgende Rechte gibst:

 $ chown root.trusted /usr/sbin/PROGRAMM
 $ chmod 4710 /usr/sbin/PROGRAMM

Das bedeutet, alle Gruppenmitglieder von trusted dürfen das Programm ausführen aber nicht die binary Datei lesen (nur 'x' ist gesetzt), das Programm wird mit root Rechten ausgeführt (die 4 am Anfang setzt das Set User ID Bit), und wer nicht der Gruppe trusted zugehört, darf gar nichts. Die Artikel über DateiRechte und DateiAttribute helfen das vielleicht besser zu verstehen.

Jetzt fügst du einfach jeden, der "dürfen soll", der Gruppe trusted hinzu.


Die Hacker-Methode:

Man kann obiges natürlich auch mit einem C Programm erreichen. Hier ist es: scripts/suid-wrapper.c (Das kam von Ingvar Gilbert (ingvar@gmx.de), von mir etwas angepaßt, hoffentlich gehts noch ;).

Dann das Programm mit gcc -Wall suid-wrapper.c -o suid-wrapper kompilieren, und mit

 chown root suid-wrapper
 chmod 4711 suid-wrapper

das SUID Bit setzen. Wenn du nicht willst, daß jeder darf, nimm 4710 und mach das so mit den Gruppen wie oben.

PS: 4711 ist hier keine 'random number', sondern voll beabsichtigt.

PPS: Du MUSST das Programm anpassen, in Bezug auf die auszuführenden Befehle. Gucks Dir halt mal an ;)