20

Пользователь irc в #Vim убедил меня не использовать Sudo с Vim как:

sudo vim bad_idea

Когда я делаю что-то в таких местах, как /var /www /, я не могу писать без него. Так что неиспользование sudo становится проблемой. Конечно, я могу вносить изменения в разных местах, таких как /tmp /, а затем копировать каталоги в /var /www. Однако я чувствую более легкий путь.

  1. Если вы не "sudo Vim", почему?
  2. Если да на первый вопрос, как вы обходите проблемы, чтобы не использовать sudo?

8 ответов8

34

Я подпадаю под первую категорию: sudo vim /var/www/html/some_file - плохая идея; это позволяет экранировать оболочки, которые не зарегистрированы. Вместо этого используйте sudoedit /var/www/html/some_file ; это имеет тот же эффект.

10

См. Https://stackoverflow.com/questions/1005/getting-root-permissions-on-a-file-inside-of-vi:

% заменяется текущим именем файла, поэтому вы можете использовать:

:w!судо тройник%

7

vim позволяет пользователям выполнять произвольные команды оболочки, поэтому многие системные администраторы не разрешают использовать vim с sudo.

rvim включен в vim. Это ограниченный vim, который не допускает команд оболочки. (Или разрешить вам приостановить vim по тем же причинам.)

Если вам нужно пойти в эти крайности на собственном поле является дискуссионным.

6

При редактировании общесистемных файлов конфигурации это совершенно нормально - просто всегда помните, что вы являетесь пользователем root и, таким образом, обладаете всей мощью, и отбрасывайте эти привилегии, как только они вам больше не нужны.

В особом случае /var/www/ , то есть на страницах веб-сервера, вы можете подумать об изменении некоторых владельцев / групп / разрешений - но, если и как, во многом зависит от вашей конкретной настройки (однопользовательский / многопользовательский, реальный веб-сервер)/ просто localhost, динамический / статический и т. д.)

3

Такой вопрос заставляет меня бить себя по лбу. Я нахожусь на другой стороне безопасности: «безопасность не должна мешать взаимодействию с пользователем, если только это не ожидается или не требуется для предотвращения обычного человека, совершающего злонамеренную деятельность».

Предотвращение использования vim в sudo - это просто помощь группы. Как было сказано ранее, кто-то может просто использовать:

sudo su -

Или же

sudo /bin/bash

Или же

sudo nano file

Или же

sudo my_exectuable_text_editor file

ЭСТ

Если вы действительно беспокоитесь о том, что кто-то делает что-то вредоносное на коробке, не давайте им привилегий sudo (или, очевидно, пароля root), точка. Для предотвращения злонамеренных действий с использованием sudo не существует ни единой пули, и вы только сведете с ума, "применив" все "исправления", чтобы убедиться, что человек не может сделать что-либо вредоносное.

Кто-то упомянул смену владельца / группы. Это неприятная проблема, как будто веб-сервер запущен от имени другого пользователя, и вы изменили права доступа к файлу, теперь ваш сайт неожиданно не работает. Ну, очевидно, это тебе не поможет. Вы можете добавить себя в группу, в которой работает веб-сервер, однако, если у группы нет прав на запись в файлы, вам нужно выполнить команду chmod -R g+w * (или отдельные файлы chmod), которая может не выполняться. то, что вы хотите, и может быть хлопот, если вам нужно chmod каждый файл.

Некоторые люди даже предложили использовать rvim. Конечно, можно просто добавить строку в /etc /sudoers, чтобы разрешить sudo rvim только определенным пользователям, однако логично было бы предположить, что, если вам придется идти по этому пути, может быть лучше реализовать веб-файловый менеджер. Таким образом, он работает как пользователь, от имени которого работает веб-сервер, поэтому нет проблем с правами доступа к файлам, и вы все равно можете иметь детальный контроль над тем, кто и какие файлы редактирует.

Мои два цента в любом случае.

2

Запуск sudo vim не изменит каталог $HOME , поэтому вы будете запускать Vim с правами root, но $HOME по-прежнему указывает на вашего обычного пользователя.

Если вы запускаете Vim впервые, может случиться так, что файл ~/.viminfo будет создан в вашем обычном пользовательском каталоге, но с правами root.

1

ЕСЛИ ЭТО ВАШ СОБСТВЕННЫЙ КОМПЬЮТЕР... Я не вижу причин, по которым вы не можете использовать 'sudo vim', кроме крайнего случая, который заметил Денилсон - что он может создать ваш ~/.viminfo, принадлежащий root.

Если нет - если системный администратор ограничивает то, что вы можете и не можете делать - для "man sudo": «на большинстве систем можно предотвратить побег оболочки с помощью функции sudo noexec. Подробности смотрите в руководстве sudoers(5). "

Так что в этом случае, если ваш системный администратор обеспокоен тем, что вы можете запускать подоболочки как root изнутри vim, они могут использовать возможность noexec. Но ... вернемся к первоначальному случаю - если это ВАШ компьютер, я думаю, что вы чертовски безопасно работаете с sudo vim.

0

Ссылка на ответ Бальфы о группах:

Howto: Linux Добавить пользователя в группу

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .