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 sudo
Gruppe sind; Mit den obigen Befehlen kann die applicationcommand
Datei nur für Mitglieder der sudo
Gruppe 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/myapp
und 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 myapp
als sein Benutzer ausgeführt, ohne dass sudo
Berechtigungen 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. sudo
kann man sudoers
auf zig Millionen Arten fein geschnitten werden (siehe ), daher hängt die Effektivität dieses einfachen Hacks davon ab, wie stark Sie ihn angepasst haben.