Ich habe ein bestimmtes Binärprogramm unter OS X, das nur als Root ausgeführt werden kann.
Ich habe es satt, sudo
jedes Mal, wenn ich es aufrufe und das Passwort eingebe, ein Präfix vorzustellen , und möchte, dass es automatisch als root ausgeführt wird, wenn ich es regelmäßig aufrufe , ohne nach einem Passwort zu fragen.
Der Eigentümer des Programms ist root und seine Gruppe ist rad.
Ich habe versucht chmod ug+s
, die Benutzer-ID und die Gruppen-ID bei der Ausführung auf root / radius zu setzen, aber wenn ich das Programm ohne sudo ausführe, beschwert es sich immer noch, dass es nur mit sudo oder als root ausgeführt werden kann.
nosuid
Mount-Option verwenden ... zusätzlich dazu, warum Sie regelmäßig ein Programm als Superuser ausführen müssen.Antworten:
Sind Sie sicher, dass das Programm, das Sie ausführen möchten, tatsächlich eine Binärdatei und kein Shell-Skript ist? Die meisten Shells ignorieren Suid-Skripte, weil sie wirklich sehr, sehr schwer sicher zu machen sind. Eine einfache Möglichkeit zur Überprüfung besteht darin, den
file
Befehl im Programm zu verwenden.quelle
Eine halbe Lösung für Ihr Problem:
Fügen Sie in der sudoers-Datei Folgendes hinzu:
Dann können Sie über die Befehlszeile Folgendes eingeben:
und es wird der Befehl ausgeführt, ohne nach Ihrem Passwort zu fragen. Dieser Befehl wird als root ausgeführt.
Beachten Sie, dass Sie den Benutzernamen durch Ihren tatsächlichen Benutzernamen ersetzen müssen.
quelle
Wenn Sie es wirklich als Daemon aus irgendeinem Grund nicht aufrufen kann (diese Frage würde in diesem Fall relevant sein) , diese Methode kann zusammen gehackt werden, aber es ist ziemlich schmutzig, und haupt nicht sicher.
Das Konzept besteht darin, es mit einem AppleScript zu starten. Sie müssen zunächst wissen, wie Sie den Prozess über die Befehlszeile aufrufen (was bedeutet, dass Sie alle Einstellungen vornehmen müssen, wenn Sie sudo bereits verwenden). Sie starten diesen Prozess mit dem
do shell script
Befehl und anstatt sudo zu verwenden, schreiben Sie Ihre Anmeldeinformationen in das AppleScript:Ich wiederhole den Teil darüber, dass dies unsicher ist: Dies bedeutet, dass Ihre Administrator-Creds in einfachem Text gespeichert werden. Wenn möglich, sollten Sie einen Weg finden, dies als LaunchDaemon in den Hintergrund zu rücken.
quelle
Unter OSX befindet sich das Programm in / usr / local / bin / YourProgramName ... Um dieses Problem zu beheben, führen Sie den folgenden Befehl aus: So ändern Sie die Benutzer-ID / Gruppen-ID für in den Dateien verwurzelte Dateihierarchien anstelle nur der Dateien selbst .
sudo chown -R $(whoami) /usr/local/bin/
... rufen Sie dann im Terminal Ihren Programmnamen $ YourProgramName auf
quelle
Du kannst tun
das wird Sie in eine Wurzel-Shell setzen.
quelle
Es sieht so aus, als ob das Programm selbst prüft, ob es mit ID = 0 ausgeführt wird
quelle
Du könntest
sudo chown YOUR-USERNAME-HERE BINARY-NAME-HERE
.Trotzdem stimme ich dem Kommentar von dmckee voll und ganz zu.
quelle