Ändern Sie mit dem Editor Dateien, die Sudo-Berechtigungen benötigen

Ändern Sie mit dem Editor Dateien, die Sudo-Berechtigungen benötigen

Ich möchte mit KomodoEdit Dateien ändern, für die sudoBerechtigungen erforderlich sind. Ich kann KomodoEdit jedoch nicht mit starten sudo(aus welchem ​​Grund auch immer). Kann ich Komodo irgendwie die Berechtigung erteilen, diese Dateien zu bearbeiten (insbesondere spreche ich von Apache2-Dateien und /etc/hosts)?

Antwort1

Verwenden Sie sudoedit <file>. Es erstellt eine lokale Kopie der Datei, bearbeitet sie mit Benutzerrechten und kopiert sie zurück an den ursprünglichen Speicherort. Der Vorteil ist, dass der Editor als normaler Benutzer ausgeführt wird.

Um vorübergehend einen anderen Editor als den Standardeditor anzugeben, können Sie Folgendes festlegen EDITOR:

EDITOR=/usr/bin/someeditor sudoedit /etc/hosts

Hierzu muss das sudoPaket installiert und der Benutzer zur sudoGruppe hinzugefügt werden.

Antwort2

Theoretisch könnten Sie dies tun, indem Sie das Suid-Bit bei komodoedit setzen und dessen Besitzer in root ändern.

sudo chown root:root /path/to/komodoedit
sudo chmod u+s /path/to/komodoedit

Was es macht:

  1. chownsetzt den Besitzer auf root
  2. chmod u+sgibt jedem, der die Datei ausführt, die gleichen Rechte (für die Ausführung) wie dem Eigentümer.

Da wir den Besitzer auf „root“ festgelegt haben, wird „root“ zum effektiven Ausführungsbesitzer.

Dies ist vermutlich NICHT die Antwort, die Sie suchen, da hierdurch allen Benutzern ein effektiver Root-Editor gewährt wird.

Aus Sicherheitsgründen ist sudoedit, wie von Marco erwähnt, wahrscheinlich korrekter.

Antwort3

Eine relativ saubere Möglichkeit besteht darin, Ihrer Benutzer-ID Berechtigungen für eine bestimmte Datei zu erteilen, indem SieZugriffskontrolllisten. Sie müssen wahrscheinlich das aclPaket installieren, um die Befehle getfaclund zu haben. Dann können Sie setfaclfür einen Benutzer „myname“ und eine Datei den Befehl eingeben:/etc/hosts

sudo setfacl -m 'u:myname:rw' /etc/hosts

und Sie können diese Datei dann lesen/schreiben. Wenn Sie ls -lauf der Datei sind, sehen Sie ein +Zeichen, das anzeigt, dass eine ACL für die Datei vorhanden ist:

-rw-r--r--+ 1 root root 221 Nov  5 16:55 /etc/hosts

getfaclund Sie können die ACL mit der Datei auflisten . Um die ACL später zu entfernen, verwenden Sie

sudo setfacl -x 'u:myname' /etc/hosts

oder setfacl -bum alle ACLs zu entfernen. (Ihr Dateisystem muss ACLs unterstützen.)

verwandte Informationen