Frage "Root" -Programm darf ohne Berechtigungen ausgeführt werden [duplizieren]


Diese Frage hat hier bereits eine Antwort:

Ich habe meine geändert ctrl-alt-l Verknüpfung, anstatt nur den Bildschirm zu sperren, geht das System in den Ruhezustand.

(Als Referenz ist der Befehl gksudo pm-suspend-hybrid)

Wie Sie sehen können, muss das Programm als root ausgeführt werden, also habe ich das hinzugefügt gksudo. Ich möchte das System wirklich suspendieren lassen, ohne das Passwort eingeben zu müssen. Kann ich das irgendwie machen?


2
2018-05-13 13:21


Ursprung


Gute Frage, aber warum benutzt du nicht systemctl suspend? Es benötigt keine Root-Rechte. - Pablo Bianchi


Antworten:


Öffnen Sie ein Terminal und führen Sie es aus sudo visudo.

Dann können Sie die sudoers-Datei bearbeiten, in der Sie festlegen können, wer welchen Befehl als root mit und ohne Passwort ausführen darf. Am Ende der Datei fügen Sie entweder diese Zeile ein

nonprivilegeduser ALL=NOPASSWD:/usr/sbin/pm-suspend-hybrid

Damit jeder Benutzer diesen Befehl als Root ohne Passwort ausführen kann, oder

Your_Username ALL=NOPASSWD:/usr/sbin/pm-suspend-hybrid

damit nur Ihr Benutzer dies tun kann (natürlich müssen Sie es für Ihren Benutzer anpassen). Dann speichern Sie die Datei (sollte Strg + O sein) und beenden Sie das Programm (Strg + X).

Zuletzt müssen Sie Ihren Befehl zum Lesen bearbeiten sudo pm-suspend-hybrid Anstatt von gksudo pm-suspend-hybrid.

HINWEIS: Es sollte auch möglich sein, dies mit dbus zu tun (erfordert keine sudoers-Bearbeitung), aber diese Lösung hat den Vorteil, dass sie mit jeder Benutzeroberfläche funktioniert.


8
2018-05-13 13:40



hat super funktioniert: D Danke: D Nur zum Nachschlagen verwende ich jetzt gnome-screensaver-command -l; sudo pm-suspend-hybrid  um den Bildschirm zu sperren und dann auszusetzen :) - jackweirdy
Und das funktioniert? Ich hatte mehrere Probleme mit der Ausführung mehrerer Befehle (es war keine Verknüpfung, sondern eine Startanwendung). Aber gut zu hören, es funktioniert ^^ - jPlatte
Ich legte es in ein Shell-Skript und lief es :) - jackweirdy
Okay. ich benutzte sh -c 'command && command' ;) - jPlatte


Normalerweise ist das das, was SUID-Bit ist für, aber in deinem Fall würde ich wahrscheinlich ersetzen pm-suspend-hybrid mit unterschiedlichem Aufruf, der keine Root-Rechte benötigt (Sie müssen kein Passwort eingeben, wenn Sie Unity beenden).

Verwenden Sie stattdessen den folgenden Befehl (ohne sudo):

dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend

Verweise:


1
2018-05-13 13:43



Versuchte das vorher; Es schaltet nur den Bildschirm aus :( - jackweirdy
Okay, gut zu wissen. Scheint, dass hybrides Aussetzen von UPower nicht sehr gut unterstützt wird. - jnv


  1. Geben Sie den Befehl ein:

    sudo visudo
    

    und dann das Passwort eingeben.

  2. Sie können die untere Zeile im Terminal sehen

    %sudo   ALL=(ALL:ALL) ALL
    

    Bearbeiten Sie die% Sudo Zeile mit

    %sudo   ALL=(ALL:ALL) NOPASSWD:ALL
    
  3. Speichern Sie die Änderungen mit StrgX.


0
2017-10-16 12:47