Es ist nicht ratsam, sudo
mit einer grafischen Anwendung wie gedit
der unter diesem Link beschriebenen zu arbeiten . Dementsprechend habe ich eher zu verwenden vim
mit sudo
.
Kürzlich habe ich meine bemerkt ~/.viminfo
root- Benutzer eine relativ neue Installation von Ubuntu 16.04 (Xenial Xerus) ist, und fragte mich, ob selbst Vim als grafisch angesehen wird oder ob es ein anderes Problem beim Aufrufen gibt sudo vim
. Nach dem Eigentümerwechsel an mich selbst über:
sudo find $HOME -not -user $USER -exec chown $USER:$(id -g) {} +
und anschließend ausgeführt konnte sudo vim
ich nicht ~/.viminfo
von root besessen haben . Ich bin mir jedoch sicher, dass es kürzlich im Besitz von root war.
Ist es nicht ratsam, aufzurufen sudo vim
?
:w !sudo tee %
Antworten:
Ja, das ist sicher.
Das Problem mit dem
sudo gedit
ist , weil GUI - Anwendungen bestimmte Dateien verwenden, wie zum Beispiel~/.cache/dconf
, und danach wieder nachgedit
dieser Datei wird root Besitz. Nun, diese bestimmte Datei enthält benutzerspezifische Einstellungen für GUI-Anwendungen, einschließlich des Desktops. Wenn das System diese Einstellungen nicht lesen kann, ist dies schlecht. IIRC ein Benutzer kann einen bestimmten Desktop nicht starten. Die letzten Dateidaten des Benutzersrecently-used.xbel
ebenfalls beeinflusst.Auf der anderen Seite hat Vim dieses Problem nicht. Es verwendet keine GUI-bezogene Datenbank und fügt nichts ein
recently-used.xbel
. Es wurde nur für Konsolenzwecke erstellt, obwohl es auch gVim gibt. Tatsächlich ist Vim auf einigen Systemen Ihre einzige Wahl für den Editor. Es ist also sicherer als Gedit, da es nicht dieselben Probleme verursacht. In beiden Fällen bearbeiten Sie immer noch als Root, sodass Probleme mit der fehlerhaften Bearbeitung auftreten können.Laut diesem Blogbeitrag :
Während der Autor darauf hinweist, dass dies zu Problemen führen kann, gibt es nichts Komplexes - nur
chown
die Datei für sich.Siehe auch:
quelle
sudo vim
von eine Kopie von vim als root ausführen und anschließend:!/bin/sh
eine root-Shell abrufen.sudo /bin/sh
? In der Praxis müssen Benutzer, die bereits über Root-Zugriff verfügen, keine aufwändigen Tricks anwenden./etc/sudoers
Datei. Sie müssen nicht müssen tun%wheel ALL=(ALL) ALL
-sudo
Konfiguration weit mehr Nuance als erlaubt./bin/bash
um~/.viminfo
eine setuid auf sie setzen und warten auf den Benutzer zu laufen ,sudo vim
es zu root haben chowned?Es ist auch möglich, dies
sudoedit
zu erreichen; Es wird eine temporäre Kopie der Datei in Ihrem Editor geöffnet, wobei Ihr Editor wie Sie ausgeführt wird. Von der Manpage :Dies funktioniert gut mit vim (was ich im Allgemeinen tue) und ich stelle mir vor, dass Sie damit auch gedit verwenden können. Es gibt einige Sicherheitsbeschränkungen .
quelle
Der Link ist sehr alt (2013). Es wird empfohlen,
gksudo
odergksu
für grafische Anwendungen zu verwenden, aber beide sind veraltet. Später schlägt die akzeptierte Antwort allerdings auch vorsudo -H
.Der allgemeine Konsens in der Ask Ubuntu- Community lautet in letzter Zeit:
Das einzige Problem bleibt, dass
sudo
es kein Profil für Registerkarteneinstellungen, Erweiterungen, Zeilenumbruch, Schriftname, Schriftgröße usw. gibt. Sie können diese jedoch mit einem Wrapper-Skript wie dem folgenden von Ihrem Benutzerprofil erben: Wie kann ich meinen Stamm synchronisieren? gedit mit den Einstellungen meines Benutzers gedit?quelle
Ja, es ist sicher zu bedienen
sudo vim
. Die Probleme, auf die ich stoße, sindDie Datei beenden und erneut öffnen müssen
sudo vim
, um sie bearbeiten zu können.Die Wurzel
vimrc
ist die Standardwurzel, nicht meine angepassten nützlichen Dinge.Hier ist eine Funktion, die Sie
bashrc
hinzufügen können, damit vim automatisch sudo kann, wenn Sie die Datei nicht normal bearbeiten können.quelle
sudo
standardmäßig bewahrt die$HOME
Umgebungsvariable, das heißt,sudo vim
wird Ihre individuelle .vimrc, und es auch Mittel verwenden , diesudo vim
das Eigentum an ändert sich~/.viminfo
an root: root und führen , dass Sie einige Unannehmlichkeiten.viminfo
.Es ist in Ordnung, vi als root zu verwenden. Es wird Zeiten geben, in denen Sie eine Datei bearbeiten müssen, die Sudo- oder Root-Rechte erfordert, z. B. das Ändern Ihrer Netzwerkschnittstellendatei oder das Bearbeiten Ihrer sshd-Konfigurationsdatei. Die Verwendung von root für grafische Zwecke ist schlecht, da Benutzer eine Verbindung zum IRC herstellen oder als root im Web surfen würden. Wenn sie dabei einen Virus bekämen, hätte dieser vollständigen Root-Zugriff.
quelle
Was in den anderen Antworten nicht erwähnt wurde, ist, dass das Ausführen von vim mit root den von Ihnen installierten Plugins root-Berechtigungen verleiht. Die Frage, ob es sicher ist, als Root ausgeführt zu werden, hängt davon ab, ob Sie den Plug-in-Entwicklern (oder Mitwirkenden an ihrem Projekt) vertrauen, dass sie Ihr System nicht vollständig besitzen.
Vim wird in der Regel von Paketverwaltern in allen Linux-Distributionen überprüft, daher ist es leicht zu vertrauen. VIM-Plugins werden jedoch normalerweise direkt von GitHub-Repos installiert und haben in der Regel viel weniger Benutzer, die das Auditing durchführen (möglicherweise null). Mit anderen Worten, bei ihnen findet kein Überprüfungsprozess statt.
Wenn Sie keine Plugins im Root-Verzeichnis laden, hängt die Ausführung als Root davon ab, ob Sie VIM-Entwicklern vertrauen. Sie können jedoch darauf verzichten, ihnen vertrauen zu müssen, indem Sie sudoedit verwenden, das von denselben Entwicklern von sudo entwickelt wurde, denen wir ohnehin schon mit root-Zugriff vertraut haben. GKFX und NieDzejkob haben bereits erwähnt, warum sudoedit ideal ist. Abgesehen davon, dass Sie nicht nur den Entwicklern von sudo den Root-Zugriff anvertrauen müssen, können Sie alle Plugins, denen Sie bereits vertraut haben, mit Ihrem normalen Benutzerkonto laden.
quelle
sudoedit /etc/apt/sources.list
ein kompromittiertes Plugin installiert haben, kann es möglicherweise ein bösartiges Repository einfügen und Root-Zugriff erhalten, wenn Sie das nächste Mal Updates ausführen. Ich bin mir sicher, dass es eine lange Liste von root-geschützten Dateien gibt, für die etwas Ähnliches gilt. Und natürlich benötigt nicht jeder Virus root; Man könnte Ihre Bankdaten mit nicht mehr als einer Browser-Erweiterung abrufen.