Hallo Orm,
On Sun, Apr 24, 2005 at 19:43:18 +0200, Orm Finnendahl wrote:
das geht zwar problemlos, ist aber nicht ganz so gut zu automatisieren, da die Benutzer dafuer in einem Terminal arbeiten muessen, um ihr Passwort einzugeben.
Bei entsprechender Parametrisierung ist kein Passwort noetig. Zeile aus /etc/sudoers:
username ALL=NOPASSWD: /path/to/killjackscript
In diesem Fall muesste das Skript natuerlich auch die eigentliche kill-Aktion uebernehmen, nicht nur die PID raussuchen.
das C Programm funktioniert soweit prima, aber trotz suid will es einem Benutzer nicht erlauben, den kill Befehl auszufuehren, wenn ihm der Prozess nicht gehoert. Ich erhalte folgenden output:
[orm@studio01 orm]$ ls -l /usr/local/bin/killjack -r-s--x--x 1 root root 13195 24. Apr 19:39 /usr/local/bin/killjack [orm@studio01 orm]$ killjack killjack: executing '/bin/kill 6470' kill 6470: Die Operation ist nicht erlaubt
Konrads suid-Programm ruft das kill-Kommando ueber 'sh -c' auf (sh ist ueblicherweise bash). Die bash stellt fest, ob sie im suid-Kontext laeuft (also ob sich effective userid und real userid unterscheiden). Ist das der Fall, faellt sie auf die real userid zurueck -- das ist ein Sicherheitsfeature der bash.
bye, Chris