Ich habe 2 Benutzerkonten definiert:
- eine mit admin-berechtigung (mit
sudo
rechts) => lass es uns aufrufenadminuser
. - ein 2. ohne Privileg => lass es uns aufrufen
und ich konfiguriere den Autologin für diesen 2. Benutzer .
normaluser
normaluser
Wenn ich also eine öffnen normaluser
Sitzung und will eine Anwendung mit Admin - Privilegien ausführen kann ,
öffne ich einen Terminal Ctrl+ Alt+ Tund:
su adminuser
sudo anyapplication ...
Es funktioniert einwandfrei, ohne dass die normaluser
Sitzung beendet werden muss (es ist nicht erforderlich, eine adminuser
Sitzung zu öffnen ).
Was kann ich tun, wenn die Anwendung mit einer grafischen Benutzeroberfläche (GUI) ausgeführt werden muss?
Ich dachte darüber nach:
su adminuser
gksu anyapplication ...
aber ich verstehe
** (gksu:9122): WARNING **: the connexion is closed
No protocol specified
No protocol specified
(gksu:9122): Gtk-WARNING **: cannot open display: :0.0
normaluser
manchmal von jemandem verwendet wird, der keine Befehle ausführen kannroot
, verbessert es die Sicherheit, wennnormaluser
ein Nicht-Administrator angegeben wird . Die Gefahr, jemandem ein Benutzerkonto zu geben, ihn aber nicht über sein eigenes Passwort zu informieren, geht weit über die problematische und komplexe Situation von Boris hinaus. Wenn Sie eine vollständige Erklärung der Problematik wünschen, empfehle ich, eine neue Frage zu stellen. 3 Gründe liegen darin, dass ein Benutzer den Bildschirm sperren und entsperren, sich mit einem anderen Sitzungstyp abmelden und wieder anmelden kannecryptfs
Daten entschlüsseln .normaluser
und dieadminuser
Einstellung ist die goldene Regel.normaluser
Konto für die tägliche Arbeit und dasadmin
Konto für die Ausführung von Verwaltungsaufgaben verwendet, was nichts wirklich verbessert. Auf einem Mehrbenutzer-Computer ist dies absolut sinnvoll.Antworten:
PAM kann sich darum kümmern
Das funktioniert bei mir unter Ubuntu 16.04 (edit: es funktioniert auch unter 18.04 LTS):
setze die Zeile:
irgendwo in:
und / oder
und dann mache ich "su -" oder "sudo su -" Ich kann grafische Apps als root verwenden.
quelle
sux
undgksu
die gibt es nicht mehr.Terminologie
In dieser Antwort:
normaluser
ist ein normaler Benutzer, der kein Administrator ist und keine Befehle wieroot
mit ausführen kannsudo
.admin
ist ein Administrator, der Befehle wieroot
mit ausführen kannsudo
. (Natürlich sollten alle grafischen Befehle ein grafisches Frontend wiegksu
/ verwendengksudo
und nichtsudo
direkt.)anyapplication
ist der Name der grafischen Anwendungnormaluser
, unter der ausgeführt werden sollroot
.normaluser
kenntadmin
das Passwort und wurde (vermutlich) darüber informiert, dass er es für diesen Zweck verwenden darf.Das Problem
Die Ursache des Problems, und der Grund , die meisten anderen Antworten bisher nicht Arbeit (mit Ausnahme von Marty Fried ‚s ausgezeichnete Antwort ), ist:
gksu
kann so konfiguriert werden, dass entwedersudo
odersu
als Backend verwendet wird. Das Standardverhalten vongksu
Ubuntu ist, als Frontend fürsudo
und nicht für zu fungierensu
. Das heißt, standardmäßiggksu
und genau gleichgksudo
verhalten . Siehe die Manpage .normaluser
ist kein Administrator und kann daher keine Befehle ausführen wieroot
mitsudo
.sudo
fordert zur Eingabe des Kennworts des Benutzers auf , der es ausführt, und nicht des Kennworts des Benutzers, zu dem sie werden möchten . Es bedeutet, kein Administrator zu sein, wenn Sie nicht in der Lage sind, Ihr Kennwort für Aktionen als Personen zu verwenden, die Sie nicht sind .normaluser
, Vorausgesetzt , es ist kein Gastkonto ist, können Befehle als ein anderer Benutzer arbeiten mitsu
, in dem Putting anderen Kennwort des Benutzers . Abergksu
fungiert als Frontend fürsudo
, nichtsu
.normaluser
kann keinen Befehl direkt ausführen alsroot
, weilnormaluser
nicht verwenden kannsudo
, und niemand kannroot
mit werden,su
weil es keinroot
Passwort gibt .Die Lösung
Die Lösung erfordert das Schreiben eines Befehls, der zwei Authentifizierungsschritte ausführt:
normaluser
muss werdenadmin
, um einen grafischen Befehl auszuführen. Um dies zu tun,normaluser
muss laufengksu
mit der-w
Flagge , um es in machen laufen su-Modus anstelle des Standard - sudo-Modus , und die-u
Flagge den Befehl als laufenadmin
stattroot
.admin
muss aufgerufen werden,gksu
ohne dass das-w
Flag verwendetsudo
werden mussroot
.Hier ist der Befehl (ja, ich habe ihn getestet ;-) ):
Sie werden zweimal zur Eingabe eines Passworts aufgefordert :
admin
Passwort eingeben, umnormaluser
einen Befehl wieadmin
imsu
Backend ausführen zu können .admin
Passwort eingeben, umadmin
einen Befehl wieroot
imsudo
Backend ausführen zu können .Korrekt. Sie geben
admin
das Passwort zweimal ein.Sonstige Hinweise:
gksu
durch ersetzengksudo
, um die Verwirrung zu verringern. In Ubuntu sind sie gleichwertig. (Sie können auch die erstegksu
durch ersetzengksudo
, aber das wäre äußerst eingängig und verwirrend.)-w
ist die Kurzform von--su-mode
.-S
ist die Kurzform von--sudo-mode
, muss aber nicht verwendet werden, da der Sudo-Modus die Standardeinstellung ist.xclock
ist eine schöne einfache Uhr-Fenster-Anwendung.quelle
sudo
, damit es funktioniert. Beispiel:sudo gksu -w -u thedude gksu xclock
kdesudo
Ihrer Information : Sieht sauberer aus, zumindest auf KUbuntu.gksu
nicht mehr verfügbar zu seinEine Möglichkeit, die wahrscheinlich funktioniert, ist die Verwendung von "sux" anstelle von "su", wenn Sie zum ersten Mal zum Administrator wechseln. sux behebt das Problem, dass x-Anwendungen vom gefälschten Benutzer ausgeführt werden. Es ist im Standard-Repository enthalten und kann durch Eingabe
sudo apt-get install sux
in einer Befehlszeile installiert werden .Verwenden Sie dann einfach "sux" anstelle von "su" und es sollte so funktionieren, wie Sie es erwarten.
Lassen Sie uns das Beispiel der Anwendung wiederverwenden
xclock
:quelle
sux
auf Ubuntu 14.04 64bits;(
pkexec
Es gibt eine allgegenwärtige Alternative zu kdesudo und gksu,
pkexec
die aus einempolicykit-1
Paket stammt, das von vielen Paketen benötigt wird.quelle
sudo
oder polkit), der das Kennwort eines Administrators kennt (dh von jemandem, der kann Wurzel mit sichsudo
oder polkit), könnenpkexec
zu Führen Sie ein grafisches Programm als root aus. Das ist die Frage, die hier gestellt wird. Mir ist nicht klar, obpkexec
dies zumindest ohne umfangreiche Bearbeitung der Konfigurationsdateien möglich ist, zumal mit diesenpkexec
Programmen im Allgemeinen überhaupt keine beliebigen Grafikprogramme (ohne Polkit-Profile) ausgeführt werden können . Gibt es einen Weg?pkexec command
und es funktioniert. Die Konfiguration befindet sich in der Datei,/usr/share/polkit-1/actions/org.freedesktop.policykit.policy
die vom genannten Paket installiert wird.Anstatt
Ich schlage vor, Sie versuchen
gksu -u admin anyapplication
, wo Sie alles mit demgksu
Befehl selbst tun . Beachten Sie auch, dass Sie das Passwort des im Befehl genannten Benutzers eingeben müssen, dh in diesem Fall müssen Sie das Administratorkennwort eingeben.quelle
normaluser
läuftgksu -u admin anyapplication
es für auffordern wirdnormaluser
‚s Passwort zu werden ,admin
die mitsudo
Back - End, wiegksu anyapplication
würde prompt fürnormaluser
‘ Kennwort s wirdroot
den mitsudo
Backend. Beide schlagen aus dem gleichen Grund fehl - könnennormaluser
keine Befehle ausführensudo
.Hier ist der Befehl, um dies zu erreichen.
Führen Sie es aus, ohne
su
vorher zu laufen . Sie müssen den obigen Befehl nur in einer normalen Benutzersitzung ausführen, und die Anwendung wird als root ausgeführt.quelle
normal
Benutzerpassworts - Ich erhalte die Meldung "Der Start als Root-Benutzer ist nicht möglich"superuser/admin
Passworts - Ich erhalte die Meldung "Falsches Passwort, versuche es erneut"Du solltest benutzen:
Daraufhin wird zuerst eine grafische Passwortabfrage (das Passwort Ihres Benutzers) aufgerufen und anschließend die GUI-App als root gestartet (ich habe es gerade versucht, es funktioniert wirklich. Lustige Sache: Ich habe es
gksu AppName
sofort danach versucht , und das hat auch funktioniert - so wie es ist Vermutlich, wie das Präfix "gk" andeutet. Ich bin mir also nicht ganz sicher, wo sich Ihr Problem befindet.quelle
sudo
entnehmen können, arbeitet der Textmodus für ihn.Es gibt nur einen Superuser und das ist root.
Benutzer 1 ist ein Administrator und hat Sudo-Rechte.
Benutzer 2 ist kein Administrator und hat keine Sudo-Rechte.
Versuchen Sie, sich als Benutzer 1 anzumelden, und verwenden Sie dann den Befehl
(Ersetzen des App-Namens durch den App-Namen)
Hoffe das hilft - lass es mich wissen. :O)
BEARBEITEN: Weitere Informationen wie gewünscht
Wenn nur Sie auf dem Computer sind, unterscheidet sich die
Verwendung von Benutzer 1 (der die Berechtigung zur Verwendung von sudo hat)
nicht von der Verwendung von Benutzer 2 (der die Berechtigung zur Verwendung von sudo nicht hat).
Benutzer 1 hat dieselben Rechte wie Benutzer 2. Es sei
denn, Benutzer 1 gibt einen Befehl mit dem Präfix sudo aus und / oder gibt sein Kennwort an, damit Anwendungen mit Root-Berechtigungen ausgeführt werden können.
Der einzige Unterschied besteht darin, dass Benutzer 2 keine Apps als Root ausführen kann.
Hoffe, das hilft dir, es ein bisschen zu erklären. :O)
quelle
su admin
+sudo ...
Beispielsudo vi file
, außer für die Anwendung mit GUI