Diese Antwort ist komplementär zu Heathers (die funktionieren wird).
Berücksichtigen Sie zunächst, dass unter Unix (und Linux) alles möglich ist , wenn Root-Berechtigungen verwendet werden können. Im Fall von Heather Antwort wird nichts Ihren Benutzer davon abhalten, nur sudo /usr/bin/applicationcommand(mit ein bisschen Suche nach dem wirklichen Pfad oder was auch immer). Aber ich nehme an, das ist okay für dich.
Warum in diesem Fall nicht einfach (1) :
sudo chgrp sudo /usr/bin/applicationcommand
sudo chmod 750 /usr/bin/applicationcommand
? Wenn die Benutzer verwenden können sudo, bedeutet dies, dass (2) sie in der sudoGruppe sind; Mit den obigen Befehlen kann die applicationcommandDatei nur für Mitglieder der sudoGruppe gelesen / ausgeführt werden . Wenn sie es jedoch ausführen, führen sie es wie jeden anderen Befehl als ihren tatsächlichen Benutzer aus.
Die "klassische" Unix-Lösung lautet jedoch:
- Erstelle eine Gruppe, nenne sie
privileged.
sudo chgrp privileged /usr/bin/myappund dann sudo chmod 750 /usr/bin/myapp.
- Fügen Sie der Gruppe die Benutzer (nicht privilegiert!) hinzu, mit denen Sie die App ausführen möchten
privileged
und jetzt wird der Benutzer myappals sein Benutzer ausgeführt, ohne dass sudoBerechtigungen erforderlich sind .
Beachten Sie, dass Sie den Set-UID-Mechanismus in Kombination mit den oben genannten Techniken verwenden können , wenn die Anwendung als anderer Benutzer ausgeführt werden soll.
Fußnoten:
(1) : Beachten Sie, dass Sie dies nicht tun können, wenn die Anwendung ein Set-Gid-Flag hat (dies passiert beispielsweise bei einigen Mailern). Überprüfen Sie dies, bevor Sie die Gruppe der Binärdatei ändern.
(2) : in den meisten Konfigurationen. sudokann man sudoersauf zig Millionen Arten fein geschnitten werden (siehe ), daher hängt die Effektivität dieses einfachen Hacks davon ab, wie stark Sie ihn angepasst haben.