Ein IRC-Benutzer in #Vim forderte mich auf, Sudo nicht mit Vim zu verwenden, wie:
sudo vim bad_idea
Wenn ich Dinge an Orten wie / var / www / mache, kann ich nicht ohne sie schreiben. Die Nichtverwendung von sudo wird somit zu einem Problem. Natürlich könnte ich Änderungen an verschiedenen Stellen wie / tmp / vornehmen und dann die Verzeichnisse nach / var / www kopieren. Ich spüre jedoch einen einfacheren Weg.
- Wenn Sie nicht "sudo Vim", warum?
- Wenn ja, wie umgehen Sie Probleme, sudo nicht zu verwenden?
Siehe: /programming/1005/getting-root-permissions-on-a-file-inside-of-vi :
quelle
Mit vim können Benutzer beliebige Shell-Befehle ausführen. Daher erlauben viele Systemadministratoren nicht, dass vim mit sudo verwendet wird.
rvim ist in vim enthalten. Es ist eine eingeschränkte Version, die keine Shell-Befehle erlaubt. (Oder Sie können vim aus den gleichen Gründen aussetzen.)
Ob Sie auf eigene Faust an diese Extreme gehen müssen, ist umstritten.
quelle
sudo vim
Dann geben:!bash
Sie ein und Sie haben eine Shell als root - genau warumrvim
existiertsudo bash
odersudo su -
richtig?vi
startetvim
aber als rootvi
startetvi
. Auf Ubuntuvim
wird in beiden Fällen verwendet undsudo vi
startet auchvim
...Wenn Sie systemweite Konfigurationsdateien bearbeiten, ist dies völlig in Ordnung. Denken Sie jedoch immer daran, dass Sie als Root angemeldet sind und über die volle Leistung verfügen. Löschen Sie diese Berechtigungen, sobald Sie sie nicht mehr benötigen.
In dem speziellen Fall
/var/www/
, dh bei Webserverseiten, sollten Sie überlegen, ob Sie einige Eigentümer / Gruppen / Berechtigungen ändern möchten. Ob und wie stark dies von Ihrem jeweiligen Setup abhängt (Einzel- / Mehrbenutzer, echter Webserver / nur lokaler Host, dynamisch) / statisch usw.)quelle
Eine solche Frage lässt mich auf die Stirn schlagen. Ich bin auf der anderen Seite der Sicherheit: "Sicherheit sollte die Benutzererfahrung nicht beeinträchtigen, es sei denn, es wird erwartet oder verlangt, dass die durchschnittliche Person keine böswilligen Aktivitäten ausführt."
Das Verhindern des sudo-Gebrauchs von vim ist nur ein Pflaster. Wie bereits erwähnt, kann jemand einfach Folgendes verwenden:
Oder
Oder
Oder
ect
Wenn Sie sich wirklich Sorgen machen, dass jemand etwas Bösartiges an der Box tut, geben Sie ihm nicht die Berechtigung sudo (oder natürlich root password). Es gibt keine Splitterkugel, die böswillige Aktivitäten mit sudo verhindert, und Sie werden nur verrückt, wenn Sie alle "Korrekturen" anwenden, um sicherzustellen, dass eine Person nichts Bösartiges tun kann.
Jemand erwähnte einen Eigentümerwechsel / Gruppenwechsel. Dies ist ein schwerwiegendes Problem, da der Webserver als ein anderer Benutzer ausgeführt wird und Sie die Berechtigungen für die Datei ändern, sodass Ihre Site plötzlich nicht mehr funktioniert. Nun, das wird dir offensichtlich nicht helfen. Sie können sich der Gruppe hinzufügen, auf der der Webserver ausgeführt wird. Wenn die Gruppe jedoch keinen Schreibzugriff auf die Dateien hat, müssen Sie chmod -R g + w * (oder chmod einzelne Dateien) ausführen, was möglicherweise nicht der Fall ist was Sie wollen und ein Ärger sein kann, wenn Sie jede Datei chmod müssen.
Einige Leute schlugen sogar vor, rvim zu verwenden. Sicher, man könnte einfach eine Zeile in / etc / sudoers einfügen, um nur bestimmten Benutzern das Ausführen von sudo rvim zu ermöglichen. Es ist jedoch logisch, dass es möglicherweise besser ist, einen webbasierten Dateimanager zu implementieren, wenn Sie diesen Weg einschlagen müssen. Auf diese Weise wird es als der Benutzer ausgeführt, unter dem der Webserver ausgeführt wird, sodass keine Dateiberechtigungsprobleme auftreten und Sie weiterhin eine differenzierte Kontrolle darüber haben können, wer welche Dateien bearbeitet.
Meine zwei Cent sowieso.
quelle
Beim Ausführen
sudo vim
wird das$HOME
Verzeichnis nicht geändert , sodass Sie Vim mit Root-Berechtigungen ausführen, aber$HOME
weiterhin auf Ihren normalen Benutzer verweisen.Wenn Sie Vim zum ersten Mal ausführen, wird die
~/.viminfo
Datei möglicherweise in Ihrem normalen Benutzerverzeichnis erstellt, jedoch mit Root-Berechtigungen.quelle
sudo vim -c '!echo $HOME' -c q
gibt es meinen Home-Ordner, aber auf meinem Server gibt es/root
. Ich muss mir vielleicht ansehen, warum das so ist, könnte daran liegen, dass das eine OS X ist, während das andere Gentoo ist, oder könnte etwas damit zu tun haben, wie es eingerichtet/etc/sudoers
ist..viminfo
nur root-zugänglich war.WENN DAS IHR EIGENER COMPUTER IST ... Ich verstehe keinen Grund, warum Sie "sudo vim" nicht verwenden können, außer dem von Denilson notierten Randfall, dass es Ihr ~ / .viminfo-Eigentum von root erstellen könnte.
Wenn nicht - wenn ein Systemadministrator einschränkt, was Sie können und was nicht -, können Sie mit "man sudo": "auf den meisten Systemen Shell-Escapes mit der noexec-Funktionalität von sudo verhindern. Weitere Informationen finden Sie im sudoers (5) -Handbuch. "
Wenn Ihr Systemadministrator also Bedenken hat, ob Sie Subshells als Root aus vim heraus ausführen könnten, können diese die noexec-Funktion verwenden. Aber ... zurück zum Ausgangsfall - wenn dies IHR Computer ist, sind Sie verdammt sicher, wenn Sie "sudo vim" ausführen.
quelle
Ein Verweis auf Balphas Antwort zu Gruppen:
Howto: Linux Benutzer zu Gruppe hinzufügen
quelle