Spielverderber! Mit C hat man viel mehr Möglichkeiten sich in den Fuß zu schießen... ;-)
Achtung: da sich Shellskripte stark von Umgebungsvariablen beeinflussen lassen, sind alle (hier genannten) Shellskript-Lösungen *extrem* unsicher. Wenn Sicherheit keine Rolle spielt, würde ich dann pragmatischerweise eine sudo-ohne-Passwort-Lösung nehmen.
Da ich aber schon auf Sicherheit etwas Wert lege, würde ich eher ein SUID-Perlskript bauen.
Viele Grüße, Torsten
Am 24. April 2005, 23:20 Uhr (+0200) schrieb Torsten Werner:
Spielverderber! Mit C hat man viel mehr Möglichkeiten sich in den Fuß zu schießen... ;-)
Achtung: da sich Shellskripte stark von Umgebungsvariablen beeinflussen lassen, sind alle (hier genannten) Shellskript-Lösungen *extrem* unsicher. Wenn Sicherheit keine Rolle spielt, würde ich dann
Ich glaube nicht, daß auf unserem Studiorechner, der hinter einer firewall steckt und nur über ein portforwarding per ssh von außen erreichbar ist, Sicherheit eine große Rolle spielt. Aber Interessehalber würde ich gerne wissen, wie man das folgende Shellskript, das die pid des jackd Prozesse auf stdout ausgibt, sicher machen könnte. Es wird wie gesagt von einem setuid C-Programm aufgerufen.
Wie gesagt, es ist nicht wirklich relevant, sondern dient lediglich der Fortbildung...
-- Orm
-------------------------------------------------------------------------- #!/bin/sh JACKPID=`ps -C jackd | grep "^ +[0-9]" | sed -e 's/^ +([0-9]+).*$/\1/g'` if [ $JACKPID ] then echo $JACKPID else echo "-1" fi exit 0 -------------------------------------------------------------------------
On Sun, Apr 24, 2005 at 09:38:50PM +0200, Orm Finnendahl wrote:
Interessehalber würde ich gerne wissen, wie man das folgende Shellskript, das die pid des jackd Prozesse auf stdout ausgibt, sicher machen könnte. Es wird wie gesagt von einem setuid C-Programm aufgerufen.
Setze den Pfad explizit oder gib ihn direkt an, also nicht "ps" sondern "/usr/bin/ps". Wieso überlasse ich dir zur Übung ;-)
Wie gesagt, es ist nicht wirklich relevant, sondern dient lediglich der Fortbildung...
#!/bin/sh
PATH=/bin/:/usr/bin:/sbin:/usr/sbin export PATH
JACKPID=`ps -C jackd | grep "^ +[0-9]" | sed -e 's/^ +([0-9]+).*$/\1/g'`
wie wäre es mit "pidof"? seife@strolchi:~> pidof artsd 6982 seife@strolchi:~> which pidof /bin/pidof seife@strolchi:~> rpm -qf /bin/pidof sysvinit-2.85-38.2
if [ $JACKPID ] then echo $JACKPID else echo "-1" fi exit 0
lug-dd@mailman.schlittermann.de