Am Montag, 24. Mai 2004 20:12 schrieb Michael Schwendt:
> Wenn ich als user versuche mit cdrecord eine Audio-CD zu
brennen
> (cdrecord -v -dao -useinfo *.wav) erhalte ich die Meldung:
>
> cdrecord: Operation not permitted. WARNING: Cannot set RR-scheduler
> cdrecord: Permission denied. WARNING: Cannot set priority using
> setpriority(). cdrecord: WARNING: This causes a high risk for buffer
> underruns. Forcespeed is OFF.
>
> Das obwohl cdrecord suid root ist:
>
> [root@localhost bin]# ls -l cdrecord
> -rws--x--x 1 root root 311604 24. Okt 2003 cdrecord
>
> Woran liegt das?
Die Warnung ist irreführend. cdrecord gibt die Superuser Rechte nach ihrer
Verwendung ab (sofern nicht als root ausgeführt) und führt den gleichen
Programmcode jedoch danach noch einmal an anderer Stelle aus, der dann
scheitert und die Warnung zur Folge hat.
Aha. Seltsames Verhalten.
Wenn Du das setuid Bit auf cdrecord gesetzt hast, darfst Du beten,
daß mit
den Rechten nichts an die Devices geschickt wird
Du meinst an das CDRom-Laufwerk? Was kann da passieren?
oder am System verstellt
wird, was die Stabilität reduziert. Ich rate davon ab, es zu setzen.
Der Autor rät allerdings dazu in seiner man-page:
Cdrecord muss als root
ausgeführt werden, um direkten Zugriff zu /dev/scg? zu bekommen und
sich den Arbeitsspeicher reservieren zu können.
Wenn andere Benutzer den root-Zugang nicht bekommen dürfen, kann
cdrecord auch als suid-root installiert werden. Dies erlaubt allen
Benutzern, oder einer bestimmten Benutzergruppe, die keine root-Privi-
legien haben, cdrecord auszuführen. Cdrecord prüft in diesem Fall, ob
der reale Benutzer Zugriffsrechte auf die angegebenen Dateien besitzt.
Ist wohl eine Frage in wie weit ich dem Programm vertraue, dass es wirklich
nur das tut, was es tuen soll.
Grüsse,
Patrice