Ich möchte mit KomodoEdit Dateien ändern, für die sudo
Berechtigungen 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 sudo
Paket installiert und der Benutzer zur sudo
Gruppe 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:
chown
setzt den Besitzer auf rootchmod u+s
gibt 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 acl
Paket installieren, um die Befehle getfacl
und zu haben. Dann können Sie setfacl
fü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 -l
auf 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
getfacl
und 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 -b
um alle ACLs zu entfernen. (Ihr Dateisystem muss ACLs unterstützen.)