Не рекомендуется использовать sudo
с графическим приложением gedit
, как описано в этой ссылке . Соответственно, я склонен использовать vim
с sudo
.
Недавно я заметил, что my ~/.viminfo
принадлежит root на довольно новой установке Ubuntu 16.04 (Xenial Xerus), поэтому мне стало интересно, считается ли даже Vim графическим или есть какие-то другие проблемы с вызовом sudo vim
. После смены владельца на себя через:
sudo find $HOME -not -user $USER -exec chown $USER:$(id -g) {} +
и в последующем запустить sudo vim
я не смог ~/.viminfo
владеть root. Тем не менее, я уверен, что недавно он принадлежал root.
Это нецелесообразно вызывать sudo vim
?
:w !sudo tee %
Ответы:
Да, это безопасно.
Проблема в
sudo gedit
том, что приложения с графическим интерфейсом используют определенные файлы, такие как~/.cache/dconf
, и после повышения,gedit
этот файл становится владельцем root. Ну, этот конкретный файл содержит пользовательские настройки для приложений с графическим интерфейсом, включая рабочий стол, поэтому, если система не может прочитать эти настройки - это плохо. IIRC пользователь не может запустить конкретный рабочий стол. Данные о последних файлах пользователяrecently-used.xbel
также затрагиваются.С другой стороны, у Vim такой проблемы нет. Он не использует базу данных, связанную с графическим интерфейсом, и ничего не вводит
recently-used.xbel
. Он был создан только для консоли, хотя gVim также существует. На самом деле, в некоторых системах Vim - ваш единственный выбор редактора. Так что это безопаснее, чем gedit, поскольку не вызывает таких же проблем. Вы по-прежнему редактируете как root в обоих случаях, поэтому у вас могут возникнуть проблемы с неправильным редактированием.Согласно этому сообщению в блоге :
Хотя автор указывает, что это может привести к проблемам, в этом нет ничего сложного - только
chown
файл обратно к себе.Смотрите также:
источник
sudo vim
для получения копии vim, работающей от имени пользователя root, а затем:!/bin/sh
для получения оболочки root.sudo /bin/sh
? Практически говоря, если у пользователя уже есть root-доступ, ему не нужно использовать сложные приемы./etc/sudoers
Файл. Вам не нужно этого делать%wheel ALL=(ALL) ALL
-sudo
конфигурация позволяет гораздо больше нюансов, чем это./bin/bash
к~/.viminfo
, положить Setuid на него и ждать , пока пользователь бежать ,sudo vim
чтобы он chowned в корень?Также возможно использовать,
sudoedit
чтобы достигнуть этого; он открывает временную копию файла в вашем редакторе, и ваш редактор работает как вы. Со страницы руководства :Это прекрасно работает с vim (это то, что я обычно делаю), и я думаю, что это позволит вам также использовать gedit. Есть некоторые ограничения безопасности .
источник
Ссылка очень старая (2013). Он рекомендует использовать
gksudo
илиgksu
для графических приложений, но оба они устаревают. Позже принятый ответ также предполагает,sudo -H
хотя.В последнее время общее мнение сообщества Ask Ubuntu заключается в использовании:
Остается единственная проблема,
sudo
которая не имеет профиля для настроек вкладок, расширений, переноса слов, имени шрифта, размера шрифта и т. Д. Вы можете наследовать их из своего профиля пользователя, хотя и с помощью скрипта-обертки, например: Как мне синхронизировать мой корень gedit с предпочтениями моего пользователя gedit?источник
Да, это безопасно для использования
sudo vim
. Проблемы, с которыми я сталкиваюсь,Необходимость выхода из файла и повторного открытия с
sudo vim
возможностью редактирования.Наличие рута
vimrc
по умолчанию, а не моих индивидуальных полезных вещей.Вот функция, которую вы можете вставить в свой,
bashrc
чтобы позволить vim автоматически выполнять sudo, если вы не можете редактировать файл как обычно.источник
sudo
по умолчанию сохраняется$HOME
переменная окружения, что означает, чтоsudo vim
будет использоваться ваш настроенный .vimrc, а также означает, чтоsudo vim
изменит владельца~/.viminfo
на root: root и доставит вам некоторые неудобства.viminfo
.В качестве root можно использовать vi. Будут времена, когда вам нужно будет отредактировать файл, требующий привилегий sudo или root, например, изменить файл сетевого интерфейса или, возможно, отредактировать файл конфигурации sshd. Использование root для графического содержимого плохо, потому что люди будут подключаться к IRC или просматривать Интернет как root. Если они получат вирус при этом, у него будет полный root-доступ.
источник
Что-то, что не было упомянуто в других ответах, это то, что запуск vim с root даст привилегии root тем плагинам, которые вы установили. Таким образом, вопрос о том, безопасно ли работать от имени пользователя root, зависит от того, доверяете ли вы тем разработчикам плагинов (или авторам их проекта), что они не владеют вашей системой.
Vim обычно проверяется сопровождающими пакетов во всех дистрибутивах Linux, поэтому им легко доверять. Тем не менее, плагины vim обычно устанавливаются непосредственно из репозиториев GitHub и, как правило, имеют меньше аудитов пользователей (может быть, ноль). Другими словами, нет проверки с ними.
Если вы не загружаете плагины в режиме root, я думаю, что запуск от имени root зависит от того, доверяете ли вы разработчикам vim. Однако вы можете пропустить необходимость доверять им, используя sudoedit, созданный теми же разработчиками sudo, людьми, которым мы в любом случае уже доверяли root-доступ. GKFX и NieDzejkob уже упоминали, почему sudoedit идеален. Помимо того, что вам не нужно доверять root-доступ кому-либо еще, кроме разработчиков sudo, вы можете загрузить все плагины, которым вы уже доверяли, с помощью обычной учетной записи пользователя.
источник
sudoedit /etc/apt/sources.list
установлен скомпрометированный плагин, он может вставить вредоносный репозиторий и получить root-доступ при следующем запуске обновлений. Я уверен, что есть длинный список файлов, защищенных от корня, к которым применимо нечто подобное. И, конечно же, не каждый вирус требует рута; Вы можете получить банковские реквизиты не более, чем с расширением браузера.