Beep_() für Linux?

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Re: Beep_() für Linux?

Beitrag von hardfalcon »

Es gibt unter Linux den Befehl beep, mit dem man das auf der Konsole machen kann.
Bei vielen Distros wird beep allerdings standardmäßig nicht mitgeliefert und muss nachinstalliert werden (allerdings gibt es dazu bei fast jeder Distro ein fertiges Paket, sodass man das Tool nicht selber compilen muss).

Laut der Manpage benötigt auf manchen (vermutlich den meisten) Systemen beep entweder suid-Rechte oder der Benutzer der beep ausführt muss zumindest Besitzer des aktuellen Terminals sein.

Man kann beep das suid-Flag verpassen (dann wird der Befehl immer mit root-Rechten ausgeführt, auch wenn er von einem normalen Benutzer gestartet wird), allerdings sollte man sich bewusst sein, dass in diesem Fall mögliche Sicherheitslücken in beep dazu führen können, dass man sich von jedem Benutzerkonto aus unberechtigt root-Rechte aneignen kann. Der Autor beschreibt in der Manpage allerdings eine vertretbare Zwischenlösung:

Code: Alles auswählen

chgrp beep /usr/bin/beep
chmod 4750 /usr/bin/beep
Das beep-Executable bekommt als neue Besitzergruppe "beep" zugeteilt (vermutlich ist diese Gruppe auf euerm System noch nicht vorhanden und muss erst erstellt werden), dann wird für das beep-Executable das suid-Flag gesetzt, und gleichzeitg "world" (=alle Benutzer außer root, dem User, dem das beep-Executable gehört, und allen Benutzern, die nicht der Gruppe "beep" angehören) das Recht entzogen, beep auszuführen. Danach müsst ihr natürlich noch euern Benutzeraccount zu der Gruppe "beep" hinzufügen, und euch neu einloggen, damit die neue Gruppenmitgliedschaft wirksam wird.

//EDIT: Ihr solltet unter gar keinen Umständen euerm eigenen Executable/Programm das suid-Flag verpassen, dadurch würdet ihr ein unkalkulierbares Sicherheitsrisiko schaffen. Die einzig saubere Lösung ist die oben beschriebene, diese hat außerdem den Vorteil, dass sie nur einmal durchgeführt werden muss, und beep danach für die Mitglieder der "beep"-Gruppe immer funktioniert.
Antworten