Da ich meinen Pi gelegentlich über SSH verwende, habe ich erfahren, dass es gefährlich ist, SSH den Zugriff auf sudo-Befehle zu erlauben. Daher plane ich, diese Berechtigung in naher Zukunft zu deaktivieren. Wenn ich Pakete installiere, muss ich normalerweise neu starten. Derzeit ist dies nur über den Superuser möglich.
sudo reboot
Gibt es eine Möglichkeit, die Berechtigungen des pi-Benutzers zu bearbeiten, damit er Pakete neu starten (und installieren) kann?
Kann ich mehrere Konten mit unterschiedlichen Berechtigungen haben?
Vielen Dank
Antworten:
Um ein bisschen zu verdeutlichen: Es gibt keine "sudo-Befehle", es gibt nur Befehle, die root-Rechte benötigen, um korrekt zu funktionieren, und
sudo
der Befehl, um sie für einen Befehl abzurufen:sudo
Führt einfach den angegebenen Befehl als root aus (lies "sudo" als Imperativ) satz "superuser, mach was!"). Die Regeln, welche Benutzer dies tun dürfen, sind in niedergeschrieben/etc/sudoers
. Bei einer Standard-Raspbian-Installation hat der Standardbenutzer "pi" die folgenden Berechtigungen:Es bedeutet: "Der Benutzer 'pi' auf ALLEN Hosts darf zu ALLEN Benutzern wechseln und muss sein PASSWD nicht eingeben, wenn ALL (read: any) -Befehle verwendet werden." (Ich habe hier verrückte Grammatik verwendet, um die Reihenfolge der Zeilen beizubehalten. Ein Hinweis, warum es eine Möglichkeit gibt, Hosts zu unterscheiden: Auf diese Weise kann dieselbe sudoers-Datei auf mehrere Computer in einem Netzwerk verteilt werden, sodass der Netzwerkadministrator weniger Arbeit hat.) .
Es kann sein, dass Sie in der Lage sind, Befehle mit sudo auszuführen, ohne ein Administratorkennwort zu vergeben. Aus diesem Grund halten Sie es für gefährlich, sudo über SSH zu verwenden (ich habe noch kein allgemeines Problem damit gehört ... könnten Sie es auch Erklären Sie, welche Gefahr genau Sie meinen.
Sicher, Sie könnten mehrere Benutzer mit unterschiedlichen Berechtigungen haben. Ich befürchte jedoch, dass die Verwendung von sudo immer noch die beste Möglichkeit ist, diese Berechtigungen zu verwalten.
Also, ich hoffe, dieses kleine Rezept hier ist das, was Sie brauchen:
Dadurch wird ein Benutzer "admin" erstellt, nach einem Kennwort gefragt, sein Ausgangsverzeichnis erstellt usw.
Dadurch wird der Benutzer "admin" in die Benutzergruppen "sudo" und "adm" eingeteilt. Da Berechtigungen in Linux verwaltet werden, indem Benutzer zu Benutzergruppen hinzugefügt werden, erhält der Benutzer "admin" alle Berechtigungen, die er benötigt. In einer Zeile
/etc/sudoers
kann jeder Benutzer in der Benutzergruppe "sudo" einen beliebigen Befehl als root ausführen. und dieses Privileg ist es, was wir für einen Admin-Benutzer benötigen (wenn er zu "adm" hinzugefügt wird, kann er einige Protokolldateien einlesen,/var/log
ohnesudo
einige andere Dinge zu verwenden). Sie müssen noch verwenden,sudo
wenn Sie als Administrator angemeldet sind. Jetzt fragt sudo immer wieder nach dem Administratorkennwort, wenn Sie sudo etwa fünf Minuten lang nicht verwendet haben.Melden Sie sich nun als Benutzer "admin" ab und wieder an. Prüfe ob
funktioniert. In diesem Fall können Sie einige Berechtigungen des "pi" -Benutzers widerrufen, da Sie jetzt sicher sind, dass Ihr Administrator über die richtigen Berechtigungen verfügt:
Dies wirft den Benutzer "pi" aus der Benutzergruppe "sudo".
Dies startet einen Editor, mit dem Sie bearbeiten können
/etc/sudoers
. Setzen Sie ein Hash-Tag (#
) vor die Zeile, die mit "pi" beginnt, und kommentieren Sie es aus (oder entfernen Sie es einfach). Speichern Sie dann den Editor und beenden Sie ihn. Visudo lädt die Berechtigungsregeln dann sofort neu. Jetzt darf der Benutzer "pi" sudo nicht mehr benutzen.Danach können Sie sich erneut als Benutzer "pi" anmelden. Wenn Sie jemals für einige Befehle zum Administrator wechseln möchten, verwenden Sie
su
("switch user"):Wenn Sie weitere Benutzer hinzufügen möchten: Verwenden Sie
sudo adduser <name>
wie oben beschrieben, und überprüfen Sie die Liste der Benutzergruppen, die der Benutzer "pi" hat:Verwenden
sudo adduser <username> <groupname>
Sie diese Option, um Ihren neuen Benutzer mehreren dieser Benutzergruppen hinzuzufügen, sodass er Audio, beschleunigtes Video, steckbare Geräte usw. verwenden kann. Wenn Sie sich nicht sicher sind, fügen Sie ihn allen diesen Benutzergruppen hinzu (aber nicht "sudo"!).quelle
visudo
ist ein Befehl, der Ihren Standardeditor verwendet, um die sudoers-Datei zu bearbeiten. Das Bearbeiten dieser Datei ohne sie kann schmerzhaft sein und wird nicht empfohlen. Sie können Ihren bevorzugten Editor ändern, indem Sie "sudo update-alternatives --config editor
VISUAL=vim visudo
nur für diese Zeit versuchen . Aber ein gutes Beispiel für das Ändern von Standardprogrammen wie Editor.Ja, Sie können festlegen
sudo
, dass der Benutzer nur bestimmte Befehle mit zusätzlichen Berechtigungen ausführen darf . Sie können dies in Ihrer/etc/sudoers
Datei ändern , aber es ist ratsam, dies nicht direkt zu tun, sondern densudo visudo
Befehl dafür zu verwenden.In der Standard-Systeminstallation sollten Sie folgende Zeile finden:
Es wird angegeben
sudo
, dass der Benutzerpi
alle Cammands alsroot
Benutzer ausführen darf, ohne auch nur ein Kennwort anzugeben . Sie können die letzte Änderung vornehmenALL
und eine durch Kommas getrennte Liste von Befehlen angeben, die (mit ihrem vollständigen Pfad) ausgeführt werden dürfen. In Ihrem Fall sollten Sie diese Zeile ändern in:Beachten Sie, dass es noch eine weitere Zeile gibt,
sudoers
die sich auf denpi
Benutzer auswirkt :In dieser Zeile können alle Benutzer in der Gruppe
sudo
(das%
Zeichen vor dem Namen bedeutet, dass es sich um einen Gruppennamen anstelle des Benutzernamens handelt) ALLE Kennwörter ausführen, sofern sie ihr EIGENES Kennwort kennen . Wenn Sie diese Zeile verlassen, kann der Benutzerpi
alle anderen Befehle ausführen, wird jedoch nach seinem Kennwort gefragt.Wenn Sie dies verhindern möchten, können Sie entweder diese Zeile entfernen oder den Benutzer
pi
aus dersudo
Gruppe entfernen .Nachdem Sie Änderungen an der
/etc/sudoers
Datei vorgenommen haben, können Sie durch Aufrufen dessudo -l -U pi
Befehls überprüfen, ob sie wirklich das tut, was Sie wollen .Natürlich können Sie verschiedene Konten erstellen und konfigurieren
sudoers
, um ihnen Zugriff auf verschiedene Befehle zu gewähren.quelle
Mai 2018, Das Konzept ist noch genau, aber die Vorgehensweise hat sich mit späteren Versionen geändert:
Erstens sollten die Dateien direkt in vi oder nano oder leafpad oder emacs bearbeitet werden - welcher Texteditor auch immer Ihr Favorit ist.
Der Benutzername pi wird in dieser Datei nicht erwähnt:
und die letzte Zeile der Datei ist diese:
Dies ist ein Verzeichnis, das eine Datei mit dem Namen enthält
das enthält diese einzelne Zeile
Das hat zur Folge, dass kein sudo-Befehl abgefragt wird, solange ich als Benutzer pi angemeldet bin. (Beachten Sie, dass die Syntax genau so sein muss)
Das ist toll.
Die Gruppenleitung
%sudo ALL=(ALL:ALL) ALL
ist noch da alsUm den ersten Teil der Frage zu beantworten:
Als ich die Datei /etc/sudoers/sudoers.d/010_pi-nopasswd um eine Verzeichnisebene nach oben verschob, damit das Include fehlschlug, und dann 15 Minuten wartete, forderte mein Raspbian-System bei Verwendung von sudo nur mein eigenes Passwort an wie mein Ubuntu 14.04 LTS-System früher.
Als ich es dann wieder dorthin brachte, wo es hingehört, wurde ich auch nach 10 Minuten nicht mehr dazu aufgefordert.
Kein Neustart erforderlich. Voila, keine Aufforderung zur Passworteingabe bei Verwendung von sudo
Mein Lubuntu 14.04 LTS-Testsystem hat das gleiche Setup, außer dass die Datei 010_pi-nopasswd nicht vorhanden war. lubuntu wurde mit pi als root-benutzer installiert. Es veranlasste mich jedes Mal, wenn ich sudo verwendete, mich danach 10 Minuten lang nicht dazu aufzufordern.
Ich habe die gleiche Datei zum Ubuntu-System hinzugefügt, genau wie Raspbian eingerichtet ist
Voila, es fordert mich nicht mehr auf, mein eigenes Passwort einzugeben, wenn ich auch nach 15 Minuten noch als pi angemeldet bin.
Wiederum erfolgt die Änderung sofort, ohne dass ein Neustart erforderlich ist.
Dies ist die Antwort vom Mai 2018 zum Deaktivieren und Aktivieren der Aufforderung zur Verwendung des Befehls sudo, wenn Sie als Root-Benutzer pi angemeldet sind. Andere Benutzer und Gruppen können auf dieselbe Weise konfiguriert werden.
--UPDATE für Ubuntu 16.04 LTS Dieses System ist auch sehr ähnlich. Der größte Unterschied besteht jedoch darin, dass 16.04 über wesentlich engere Dateiberechtigungen verfügt, sodass die Arbeit im
su
Modus ausgeführt werden muss. Wenn Sie Ihr root-Passwort vergessen haben, können Sie es von Ihrer normalen Eingabeaufforderung mit zurücksetzen.sudo passwd root
Dannsu
funktioniert der Befehl und Sie können von dort aus fortfahren.quelle
sudoers
geschieht normalerweise zu dem Zeitpunkt, an dem der Benutzer erstellt wird. Anwendungsbeispiel: Sie werden feststellen, dass die allgemeine Befehlszeichenfolgesudo apt-get update && sudo apt-get upgrade
sudo zweimal aufruft. Es ist jedoch ärgerlich, dass das Programm möglicherweise vor dem Upgrade angehalten wird und erneut nach dem Kennwort fragt. Also habe ich mir vorgenommen, niemals meinen einen Login-Namen (pi) einzugeben und auch dann zu verwenden,sudo apt-get update -y && sudo apt-get upgrade -y
damit es ebenfalls nicht aufhört, nach dem OK zu fragen, um beträchtliche Änderungen vorzunehmen. Um es mehr Unix-like zu machen. Tu einfach, was ich verlange, und selbst wenn ich weggehe, möchte ich, dass es fertig ist.Es ist sicherer, sudo den Zugriff über SSH zu erlauben, als jedem Benutzer die Installation von Paketen zu erlauben. Wenn du dir wirklich Sorgen machst, ändere die Zeile
/etc/sudoers
von:zu
Das heißt, Sie werden aufgefordert, ein Kennwort einzugeben, wenn Sie sudo zum ersten Mal in einer Sitzung verwenden, und nach einigen Minuten erneut. Sie können nicht
/etc/sudoers
direkt bearbeiten . Verwenden Siesudo visudo
dazu.Sieht so aus, als wäre Krzysztof gleich mit einer Antwort reingekommen. Müssen Sie wirklich jedes Mal neu starten, wenn Sie neue Pakete installieren? Sofern Sie keinen neuen Kernel oder eine neue Firmware installieren, ist ansonsten kein Neustart erforderlich. Dies ist ein Qualitäts-Betriebssystem, das wir hier haben ...
quelle
timestamp
Timeout zu erwähnen ist eine gute Idee. Standardmäßig sind es 15 Minuten, übrigens. Beachten Sie, dass diesPASSWD
die Standardeinstellung ist (falls diesNOPASSWD
nicht zuvor in dieser Befehlsliste angegeben wurde). Beachten Sie auch, dass/etc/sudoers
Sie ohne Probleme direkt bearbeiten können, wenn Sie wissen, was Sie tun. Durchvisudo
die Verwendung von werden Änderungen an temporären Dateien vorgenommen, die verhindern, dass die Datei während der Änderung automatisch geschrieben wird (was zu Syntaxfehlern und / oder Sicherheitsproblemen führen kann). Diese Datei wird vor dem Schreiben der Datei gegen mehrere gleichzeitige Änderungen gesperrt und es werden einige Syntaxprüfungen durchgeführt.Nur eine Alternative zu dem, was scruss sagte, löschen Sie die
/etc/sudoers.d/010_pi-nopasswd
Datei, indem Sie ausführensudo rm /etc/sudoers.d/010_pi-nopasswd
. Viel einfacher und sicherer als das Bearbeiten der Haupt-Sudoers-Datei, was Sudo zum Erliegen bringen kann.quelle