Hallo Bernd, * Bernd Brodesser schrieb:
* Ekkard Gerlach schrieb am 25.Feb.2002:
unter welchen Rechten läuft ein von procmail gestartetes Skript? Okay, unter dem Namen des Owner des Skriptes,
Wie kommst Du darauf?
Weil whoami -> gerlach ausgibt, siehe unten.
Natürlich nicht. Ein Skript beachtet nicht das SUID-Bit, und läuft daher *nicht* unter dem Namen des Besitzers, es sei den, derjenige, der es ausführt ist zufällig im ihm identisch.
Das Skript läuft unter dem, der es ausführt. In diesem Falle also unter dem gleichen, wie derjenige, der auch procmail ausführt.
Und wer ist procmail ? Welcher user? Habe Suse 7.2, weiß Du es? Ich weiß nur, daß fetchmail das procmail anstößt und fetchmail läuft als user "egerl" bei mir. Läuft dann auch procmail als user "egerl"? (Die Frage mag dumm klingen, aber ich weiß es wirklich nicht! Irgendein Howto, man-Seite oder so parat ? Man sudo kenne ich und verstehe es halbwegs. Allerdings stehen da keine Zusammenhänge mit Skripten, die von ?? getartet wurden.)
aber die REchte des Owners hat es wohl nicht:
Doch.
warum gibt dann whoami -> gerlach aus? Wenn ich den Owner des Skriptes auf einen anderen user "Testuser" setze, dann ist whoami -> "Testuser". Deshalb habe ich darauf geschlossen. Habe mich allerdings auch schon gewundert, wie ein procmail Prozess einfach so die Rechte von gerlach oder Testuser ergreifen kann.
procmail startet in /home/gerlach/.procmailrc
:0 H * Subject: test | /usr/local/bin/myskript
das Skript myskript: (-rwxr-xr-x 1 gerlach users 613 Feb 25 19:02 myskript)
Darf jeder ausführen, also auch procmail, egal unter welchem User.
#!/bin/sh /usr/bin/whoami > /tmp/pwd
^^^^^^^--- das gibt den Namen des owners des Skriptes aus.
echo "Hallo" > /dev/tty10 sudo /usr/sbin/isdnctrl dial ippp0 exit 0
whoami gibt "gerlach" aus. Die Ausgabe auf /dev/tty10 funktioniert nicht : /dev/tty10: Permission denied obwohl ich als user gerlach das vom x-terminal das sehr wohl darf (gerlach ist in der Gruppe tty). Des weiteren funktioniert isdnctrl dial ippp0 nur wenn ein sudo davorsteht, auch wenn isdnctrl für gerlach über /etc/sudoers freigeben. Das Skript scheint nur teilweise unter
So funktioniert sudo. Da muß ein sudo davor, wie sonst könnte sudo funktionieren?
Woher weiß sudo dann, daß er die Superuserrechte, die nur gerlach an isdnctrl hat, benutzen darf? Davon, daß gerlach der owner des Skriptes ist?
Was heißt freigegeben?
Mein Terminus ist in dieser Hinsicht das eines totalen Anfängers.
Wenn etwas in der /etc/sudoers steht, dann kann man es mit sudo aufrufen, wenn es da nicht steht, dann nützt einem ein sudo nichts. Ohne sudo geht es nicht, denn wie sonst könnte sudo da eingreifen, das ist doch kein Dämon, und ich wüßte auch nicht, wie ein solcher Dämon funktionieren könnte.
Warum kann ich als user gerlach an einem blanken x-Term isdnctrl aufrufen, auch ohne sudo davor?
dem user gerlach abzulaufen. Warum?
Was sagt denn id? Welche Gruppe?
Urps! Was ist id? Schon häufig von gehört ... hmmmmm. Die Gruppe ist "users", siehe oben. Was meist Du? (Sorry, ich will niemanden nerven, weißt Du ein Howto, Tutorial, ..., nach welchen Stichworten könnte ich nach threads im Archiv suchen, um x-male geführte Diskussionen dazu nachzulesen ?)
Wieso nimmst Du nicht einfach /dev/tty11 oder /dev/tty12? /dev/tty10 ist doch schon belegt mit den Systemmeldungen.
Klar, warum nicht. Ich will nur zu debugging-Zwecken Ausgaben erzeugen. thx Ekkard