it-swarm.com.de

Wie erhalte ich Berechtigungen zum Bearbeiten von Systemkonfigurationsdateien?

Ich kann scheinbar keine Konfigurationsdateien im Root-System bearbeiten und speichern (zB: /etc/dhcp/dhcpd.config); es heißt nur "Erlaubnis verweigert" oder die Speicheroption ist im Texteditor gesperrt.

Ich bin mir ziemlich sicher, dass ich ein Root-Benutzer bin, aber wie stelle ich sicher? Wie behebe ich dieses Problem, wenn ich ein Root-Benutzer bin?

47
Matthew Wilson

Welchen Texteditor verwenden Sie? Wenn Sie ein Root-Benutzer sind und das Kennwort kennen, versuchen Sie (in einem Terminal) Folgendes:

  • sudoedit /etc/dhcp/dhcpd.config, wenn Sie einen terminalbasierten Editor wie nano verwenden oder in einen Server ssh'en.
  • gksudo <text editor here> /etc/dhcp/dhcpd.config, wenn Sie einen GUI-basierten Editor wie gedit verwenden

In beiden Fällen müssen Sie zuerst Ihr Root-Passwort eingeben, wenn Sie dazu aufgefordert werden.

Ab Ubuntu 14.04 ist gksudo nicht standardmäßig installiert. Sie müssen das Paket gksu installieren (entweder über das Software Center oder über Sudo apt-get install gksu), um es zu erhalten.

In Ubuntu 17.10 ist Wayland anstelle des herkömmlichen X-Servers der Standard, und es ist schwierig, grafische Editoren als Root auszuführen. Siehe Warum funktioniert gksu/gksudo oder das Starten einer grafischen Anwendung mit Sudo nicht mit Wayland? für Details.

In Ubuntu 18.04 ist gksudo nicht in den offiziellen Repositorys verfügbar. Verwenden Sie stattdessen Sudo -H <text editor> oder das admin://-Protokoll :

gedit admin:///etc/dhcp/dhcpd.config

Wenn Sie kein Terminal verwenden möchten, können Sie ein GUI-Programm als root aufrufen (dieses Beispiel ist für Gedit):

  1. Schlagen Alt+F2 um das Dialogfeld Ausführen aufzurufen.
  2. Geben Sie gksudo gefolgt vom Namen der ausführbaren Datei Ihres Programms ein (der sich möglicherweise von dem auf der GUI angezeigten Namen unterscheidet). Zum Beispiel:

    gksudo gedit
    
  3. Schlagen Enter.
15
Scott Severance

Ich kann mir keinen Fall vorstellen, in dem root permission denied bekommen würde.

In 12.04 kannst du es so machen: alt+f2 und geben Sie gksudo in das Feld ein, das wie folgt aussieht:

F2 dialogue

Sie erhalten eine Box wie diese und geben gedit ein und klicken auf ok:

Type gedit in Run dialogue

Klicken Open:

Open tab inside gedit

Navigieren Sie einfach zu der Datei:

open files dialogue

Getan

Warnung: Es gibt einen Superuser/root aus einem bestimmten Grund. Es ist so, dass Sie nicht versehentlich aus Versehen etwas Schlechtes oder Strukturloses in etwas Wichtiges stecken. Sie sollten äußerst vorsichtig sein, dass alles, was Sie als root bearbeiten, die richtige Datei ist, die Sie bearbeiten möchten, UND dass Ihre Syntax perfekt ist. Wenn andere Werkzeuge zum Bearbeiten verfügbar sind, wird empfohlen, diese zu verwenden. Verwenden Sie beispielsweise visudoTerminalbefehl , anstatt /etc/sudoers manuell zu bearbeiten.

Einige Dateien, die durcheinander geraten könnten, können leicht wiederhergestellt werden. Andere sind relativ kompliziert, oder Sie müssen die Wiederherstellungskonsole und viele Befehlszeilen verwenden.

Ja, die Befehlszeile der Wiederherstellungskonsole scheint etwas erschreckender zu sein als gerade this . Sei einfach vorsichtig.

10
RobotHumans

Sie können auf verschiedene Arten testen, ob Ihre aktuelle Shell als root ausgeführt wird

~/ > whoami
paul
~/ > Sudo whoami
root
~/ > id
uid=1000(paul) gid=1000(paul) groups=1000(devs),4(adm),20(dialout),24(cdrom),…
~/ > Sudo id
uid=0(root) gid=0(root) group=0(root)

Andere Antworten bieten gute Möglichkeiten, um zu Root-Rechten zu eskalieren, sodass ich diese nicht wiederholen werde. Angenommen, Sie sind root und können die Datei /etc/dhcp/dhcpd.config immer noch nicht bearbeiten - dann sehr Wahrscheinlich hat jemand oder ein anderes Programm das Programm chattr verwendet, um die Datei unveränderlich zu machen.

Aus der chattr manual page :

Eine Datei mit dem Attribut 'i' kann nicht geändert werden: Sie kann nicht gelöscht oder umbenannt werden, es kann kein Link zu dieser Datei erstellt werden und es können keine Daten in die Datei geschrieben werden. Nur der Superuser oder ein Prozess mit der Funktion CAP_LINUX_IMMUTABLE kann dieses Attribut festlegen oder löschen.

Sie können dies mit lsattr herausfinden

lsattr /etc/dhcp/dhcpd.config

Wenn es tatsächlich unveränderlich ist, können Sie das wie folgt ausschalten:

chattr -i /etc/dhcp/dhcpd.config
6
pbr

Wenn Sie buntu 17.04 oder höher verwenden, wird empfohlen, das gvfs admin backend zu verwenden. Fügen Sie einfach admin:// vor dem vollständigen Dateipfad ein, den Sie in einer App wie dem Texteditor oder dem Datei-Apps öffnen möchten.

Öffnen Sie beispielsweise, um die Starteinstellungen zu ändern

admin:///etc/default/grub

Wenn Sie Ubuntu 17.10 mit dem Standard-Wayland verwenden, funktionieren Sudo und gksu, wie in der älteren Antwort hier erwähnt, nicht.

3
Jeremy Bicha

Verwenden Sie Ihren bevorzugten Texteditor

Sie können Sudo -e oder dessen Alias ​​ sudoedit mit Ihrem bevorzugten (grafischen!) Texteditor über die Umgebungsvariable VISUAL verwenden1:

_VISUAL=gedit Sudo -e /path/to/some-config-file.cfg
_

das ist äquivalent zu

_VISUAL=gedit sudoedit /path/to/some-config-file.cfg
_

Natürlich können Sie auch einen anderen Editor verwenden, z. G. leafpad, kate oder subl.

Einige Editoren bieten eine Befehlszeilenoption an, um immer eine neue Instanz zu starten, auch wenn gerade eine ausgeführt wird. Da sudoedit darauf wartet, dass der Editorprozess beendet wird, um Änderungen an der bearbeiteten Datei zu übernehmen, kann dies erforderlich sein, wenn andere Instanzen desselben Editors ausgeführt werden:

  • Verwenden Sie für GEdit _VISUAL='gedit -s'_.
  • Für Kate benutze _VISUAL='kate -n'_.

Vorteile

  • Keine zusätzlichen und/oder veralteten Anwendungen erforderlich.
  • Erfordert keine Sicherheitsrichtlinienänderungen wie pkexec (für die Sie Dateien bearbeiten müssen ... als Superuser genau das, was diese Antwort zu lösen versucht).
  • Erfordert nicht die Ausführung potenziell unsicherer Anwendungen mit erhöhten Rechten.
  • Verwendet die Anwendungskonfiguration des aktuellen Benutzers, aber die Zugriffsberechtigungen für die Konfigurationsdatei wie _Sudo -H_ usw.
  • Es wird nicht auf die Konfigurationsdaten der Benutzeranwendung des Benutzers root zurückgegriffen, die möglicherweise akzeptabel aussehen und sich möglicherweise nicht so verhalten.

Nachteile

  • Sie müssen einen kurzen neuen Befehl lernen.

1 EDITOR oder _Sudo_EDITOR_ arbeiten ebenfalls, haben jedoch eine geringere Priorität oder sind spezialisierter. Einzelheiten finden Sie in der Handbuchseite .

2
David Foerster

Um sicher zu gehen, sichern Sie es mit cp /etc/dhcp/dhcpd.config /$HOME/dhcpd.config.backup und führen Sie gksu gedit /etc/dhcp/dhcpd.config aus.

Ersetzen Sie gedit durch den Editor Ihrer Wahl

sie erhalten eine Eingabeaufforderung wie folgt

password Prompt

Geben Sie hier Ihr Passwort ein.

Ein neues Fenster öffnet sich und Sie können Ihre Konfiguration dort bearbeiten.

Falls etwas schief geht, können Sie es von Ihrem Backup im Home-Ordner wiederherstellen.

Sie erhalten "Berechtigung verweigert", weil Linux mit Berechtigungen umgeht.

Alles im Ordner $HOME gehört dem Benutzer, während fast alles andere root gehört.

Die /etc/dhcp/dhcpd.conf -Datei, auf die Sie zugreifen möchten, gehört zum Stammverzeichnis, und die meisten Dateien in /etc/ gehören aus Sicherheitsgründen standardmäßig zum Stammverzeichnis.

Sie können diese Datei weiterhin bearbeiten, indem Sie Ihre Berechtigungen erhöhen.

Dazu haben Sie mehrere Möglichkeiten:

  • benutze su was für switch user steht. Ohne Attribute fungiert es als Befehl zum Wechseln zum Root-Konto, aber Sie müssen das Kennwort des Benutzers eingeben, zu dem Sie wechseln. Da Root unter Ubuntu standardmäßig kein Kennwort hat (Deaktivieren des Root-Kontos). funktioniert dies nur, wenn Sie ein Passwort für root festgelegt haben, was nicht empfohlen wird.

  • verwenden von Sudo, wodurch Ihre Berechtigung für nur einen Befehl erhöht wird. Dies wird im Allgemeinen nur für Befehlszeilenanwendungen wie CLI-Texteditoren wie vim, nano etc. Verwendet

  • die Verwendung von gksu erhöht Ihre Berechtigung für nur einen Befehl, wird jedoch im Gegensatz zu Sudo für grafische Programme wie GUI-Texteditoren wie gedit verwendet. Es verwendet eine grafische Eingabeaufforderung, um die Eingabe eines Kennworts zu erleichtern.

0
Amith KK
Sudo < editor > < filelocation >

z.B.:

Sudo -H gedit etc/dhcp/dhcpd.config
0
user392272