GNU/Linux >> LINUX-Kenntnisse >  >> Linux

sudoedit:Warum es über sudo vi verwenden?

Ich bin auf diese Frage gestoßen, als ich nach etwas völlig Unabhängigem gesucht habe, aber ich dachte, ich würde die folgende wichtige Unterscheidung hinzufügen, die bisher überhaupt nicht erwähnt wurde:sudoedit führt Ihren Editor nicht als root aus.

$ sudo vim /etc/farts.conf 

Führt vim einfach als root aus und erlaubt ihm, die Datei zu lesen. Der Nachteil ist, dass der Editor jetzt auch als root läuft und alles machen kann. Wenn Sie einem Benutzer nur erlauben wollten, eine Konfigurationsdatei zu bearbeiten und sonst nichts, haben Sie ihm leider nur root gegeben auf das ganze System. Nichts hindert mich daran, eine Shell von vim mit :sh zu erzeugen oder :!command , und da es sich um untergeordnete Prozesse handelt, werden sie auch als root ausgeführt.

Andererseits:

$ sudoedit /etc/farts.conf

wird tatsächlich anders funktionieren. Es erstellt eine Kopie mit einem eindeutigen Namen in /tmp mit Berechtigungen, die nur für Ihren Benutzer gesperrt sind, und erzeugt dann Ihren Editor normal ohne Root-Rechte auf dieser Kopie.

Sobald Sie Ihren Editor verlassen, vergleicht er die temporäre Datei und die Originaldatei und ersetzt das Original sicher durch Ihre Bearbeitung, falls es sich geändert hat.

In diesem Szenario wird es möglich, einem Benutzer zu erlauben, eine Systemdatei zu bearbeiten, ihm aber nicht zu erlauben, zufällige Binärdateien als root auszuführen oder überall im Dateisystem zu stöbern.

Das ist hauptsächlich der eigentliche Unterschied, der Rest, der erwähnt wurde, sind nur nette Nebeneffekte.


Zunächst einmal sudo vim erwähnt bereits explizit Ihren Standardeditor, was nicht notwendig ist, wenn Sie ihn in $EDITOR definiert haben . sudoedit erspart Ihnen die Definition des Editors jedes Mal, wenn Sie etwas bearbeiten möchten – und auf einem Mehrbenutzersystem ermöglicht es jedem, den Editor zu verwenden, den er persönlich mag.

Wie? Stellen Sie sich ein System vor, bei dem normale Benutzer nur sudo erhalten Berechtigungen zum Bearbeiten bestimmter Dateien. Sie dürfen sudo nicht ausführen mit allem anderen aber. Sie müssten ihnen sudo vi erlauben und sudo vim und sudo nano und sudo emacs und sudo pico (und so weiter). Anstatt das tun zu müssen, könnten Sie ihnen einfach sudoedit erlauben die Datei, mit ihrer Wahl der Einstellung $EDITOR zu was sie mögen. (Stellen Sie sich vor, Sie würden einen Emacs-Liebhaber zwingen, Vim zu verwenden …)

Ein weiteres Problem ist, dass wenn Ihr $EDITOR auf vim eingestellt ist , und Sie haben Anpassungseinstellungen dafür in .vimrc Ihres Benutzers , werden diese Einstellungen nicht verwendet, wenn Sie sudo vim verwenden oder sudo $EDITOR . sudoedit behält jedoch die Umgebung des aufrufenden Benutzers und damit Ihre Einstellungen bei.

Siehe auch:Was ist so toll an sudoedit?


Linux
  1. Warum ich Linux verwende, um mein Yogastudio zu verwalten

  2. Linux – Warum verwenden wir Su – und nicht nur Su?

  3. Warum kann ich Cd nicht in einem Bash-Skript verwenden?

  4. Ssh – Warum ist Firefox gegenüber SSH so langsam?

  5. Warum shm_open verwenden?

Warum ich rxvt als Terminal verwende

Die 10 wichtigsten Gründe für die Verwendung von Linux

Verwenden Sie den vi-Editor

Warum Nerds Linux verwenden

BENUTZUNG DES SED-EDITORS

Linux vs. Mac OS:15 Gründe, warum Sie Linux anstelle von Mac OS verwenden sollten