Nie zaleca się używania sudo
z aplikacją graficzną podobną gedit
do opisanej pod tym linkiem . W związku z tym, mam tendencję do korzystania vim
z sudo
.
Ostatnio zauważyłem, że moja ~/.viminfo
własność jest rootem na dość nowej instalacji Ubuntu 16.04 (Xenial Xerus), więc zastanawiałem się, czy nawet Vima uważa się za graficzny, czy też jest jakiś inny problem z wywoływaniem sudo vim
. Po zmianie właściciela na siebie poprzez:
sudo find $HOME -not -user $USER -exec chown $USER:$(id -g) {} +
a następnie uruchomiony sudo vim
nie mogłem być ~/.viminfo
właścicielem roota. Jestem jednak pewien, że ostatnio był własnością root.
Czy inwokacja jest niewskazana sudo vim
?
:w !sudo tee %
Odpowiedzi:
Tak, jest bezpieczny.
Problem
sudo gedit
polega na tym, że aplikacje GUI używają pewnych plików, takich jak~/.cache/dconf
, i po podwyższeniugedit
plik staje się własnością root. Cóż, ten konkretny plik zawiera specyficzne dla użytkownika ustawienia aplikacji GUI, w tym pulpitu, więc jeśli system nie może odczytać tych ustawień - jest źle. IIRC użytkownik nie może uruchomić określonego pulpitu. Wpływa torecently-used.xbel
również na dane ostatnich plików użytkownika .Z drugiej strony Vim nie ma tego problemu. Nie korzysta z bazy danych związanej z GUI i niczego nie wkłada
recently-used.xbel
. Został stworzony tylko dla konsoli, chociaż gVim również istnieje. W rzeczywistości w niektórych systemach Vim jest jedynym wyborem redaktora. Jest to więc bezpieczniejsze niż gedit, ponieważ nie powoduje tych samych problemów. W obu przypadkach nadal edytujesz jako root, więc możesz spowodować problemy z niewłaściwą edycją.Zgodnie z tym postem na blogu :
Chociaż autor wskazuje, że może to prowadzić do problemów, nie ma nic złożonego - tylko
chown
plik z powrotem do siebie.Zobacz też:
źródło
sudo vim
aby uzyskać kopię vima działającą jako root, a następnie:!/bin/sh
uzyskać powłokę root.sudo /bin/sh
? Praktycznie rzecz biorąc, jeśli użytkownik ma już dostęp do konta root, nie musi używać skomplikowanych sztuczek./etc/sudoers
Plików. Nie musisz tego robić%wheel ALL=(ALL) ALL
-sudo
konfiguracja pozwala na znacznie więcej niuansów./bin/bash
aby~/.viminfo
umieścić na niej setuid i czekać, aby użytkownik mógł uruchomićsudo vim
się to chown-owane na roota?Można to również wykorzystać
sudoedit
do osiągnięcia tego; otwiera tymczasową kopię pliku w edytorze, a edytor działa tak jak Ty. Od strony man :Działa to dobrze z vimem (ogólnie to robię) i wyobrażam sobie, że pozwoliłoby ci również użyć gedit. Istnieją pewne ograniczenia bezpieczeństwa .
źródło
Link jest bardzo stary (2013). Zaleca się używanie
gksudo
lubgksu
do aplikacji graficznych, ale oba stają się przestarzałe. Później zaakceptowana odpowiedź również sugerujesudo -H
.Ogólny konsensus w społeczności Ask Ubuntu dotyczy ostatnio:
Pozostaje tylko problem,
sudo
który nie ma profilu ustawień kart, rozszerzeń, zawijania słów, nazwy czcionek, rozmiaru czcionki itp. Możesz je dziedziczyć z profilu użytkownika za pomocą skryptu opakowania takiego: Jak mogę zsynchronizować mój katalog główny gedit z preferencjami mojego użytkownika gedit?źródło
Tak, jest bezpieczny w użyciu
sudo vim
. Występują problemyKonieczność zamknięcia pliku i ponownego otwarcia za pomocą,
sudo vim
aby móc edytować.Mając root
vimrc
jako domyślny, a nie moje niestandardowe przydatne rzeczy.Oto funkcja, którą możesz ustawić,
bashrc
aby vim mógł automatycznie sudo, jeśli nie możesz normalnie edytować pliku.źródło
sudo
domyślnie zachowuje$HOME
zmienną środowiskową, co oznacza, żesudo vim
będzie używać dostosowany .vimrc, a to oznacza również, żesudo vim
będzie zmienić właściciela~/.viminfo
na root: root i spowodować pewne niedogodności.viminfo
.Można używać vi jako root. Będą chwile, kiedy będziesz musiał edytować plik, który wymaga uprawnień sudo lub root, takich jak zmiana pliku interfejsów sieciowych lub edycja pliku konfiguracyjnego sshd. Używanie roota do graficznych treści jest złe, ponieważ ludzie łączyliby się z IRC lub przeglądali sieć jako root. Gdyby to zrobili, miałby pełny dostęp do roota.
źródło
Coś, co nie zostało wspomniane w innych odpowiedziach, to to, że uruchomienie vima z rootem da rootowi uprzywilejowanie dla wszystkich zainstalowanych wtyczek. Tak więc pytanie, czy można bezpiecznie uruchamiać jako root, zależy od tego, czy ufasz programistom wtyczek (lub współpracownikom ich projektu), że nie są właścicielami twojego systemu.
Vim jest zwykle sprawdzany przez opiekunów pakietów we wszystkich dystrybucjach Linuksa, więc łatwo jest zaufać. Jednak wtyczki vim są zazwyczaj instalowane bezpośrednio z repozytoriów GitHub i zazwyczaj mają znacznie mniej kontroli użytkowników (być może zero). Innymi słowy, nie przeprowadza się z nimi procesu weryfikacji.
Jeśli nie ładujesz wtyczek podczas rootowania, myślę, że uruchamianie jako root zależy od tego, czy ufasz programistom vim. Możesz jednak pominąć konieczność ufania im, używając sudoedit, który jest tworzony przez tych samych twórców sudo, ludzi, którym i tak ufaliśmy już z dostępem do roota. GKFX i NieDzejkob wspominali już, dlaczego sudoedit jest idealny. Oprócz tego, że nie musisz ufać prawom dostępu do konta root innym osobom, oprócz twórców sudo, możesz załadować wszystkie wtyczki, którym już ufałeś, na swoje normalne konto użytkownika.
źródło
sudoedit /etc/apt/sources.list
zainstalowaną zainfekowaną wtyczkę, prawdopodobnie może ona wstawić złośliwe repozytorium i uzyskać dostęp do konta root przy następnym uruchomieniu aktualizacji. Jestem pewien, że istnieje długa lista plików chronionych przed rootem, których dotyczy coś podobnego. I oczywiście nie każdy wirus wymaga roota; dane bankowe można pobrać tylko za pomocą rozszerzenia przeglądarki.