Описание тега sudo
sudo
является рекомендуемым инструментом для повышения привилегий для выполнения административных задач в Ubuntu. Его использование более гранулировано и настраивается, чем его аналог su
,
Эта команда позволяет выдающему пользователю:
- Запустите определенную команду от имени суперпользователя или другого пользователя.
- Запустите интерактивную оболочку от имени суперпользователя или другого пользователя.
- Повышение привилегий определенных команд.
sudo
двоичный файл включен в sudo
пакет, который также включает в себя инструменты visudo
а также sudoedit
, С помощью visudo
рекомендуемый способ редактирования /etc/sudoers
файл, который настраивает поведение sudo, в то время как sudoedit
открывает редактор по умолчанию с привилегиями суперпользователя.
sudo
Команда может быть настроена с помощью /etc/sudoers
файл. Это следует определенному синтаксису; с помощью visudo
Рекомендуется для предотвращения ошибок. С помощью visudo
требует повышенных привилегий, поэтому обычный пользователь будет выдавать sudo visudo
,
Желательно всегда использовать минимальные привилегии, необходимые для любого действия. sudo
следует использовать только в случае необходимости.
Преимущества использования
sudo
В Ubuntu есть ряд преимуществ, позволяющих по умолчанию отключать входы в систему, в том числе:
- У установщика меньше вопросов.
- Пользователям не нужно запоминать дополнительный пароль для случайного использования (т. Е. Пароль root). Если они это сделают, они могут забыть об этом (или записать это небезопасно, что позволит любому легко взломать их систему).
- По умолчанию он избегает интерактивного входа "Я могу сделать все что угодно". Вам будет предложено ввести пароль до того, как произойдут серьезные изменения, которые должны заставить вас задуматься о последствиях того, что вы делаете.
sudo
добавляет запись в журнал выполнения команды (команд) (в/var/log/auth.log
). Если вы запутались, вы можете вернуться и посмотреть, какие команды были запущены.- На сервере каждый взломщик, пытающийся взломать свой путь, будет знать, что у него есть учетная запись с именем root, и попытается сделать это первым. Чего они не знают, так это имена других ваших пользователей. Так как пароль учетной записи root заблокирован, эта атака становится практически бессмысленной, поскольку в первую очередь нет пароля, который можно взломать или угадать.
- Позволяет легко передавать права администратора, добавляя и удаляя пользователей из групп. Когда вы используете один пароль root, единственный способ отменить авторизацию пользователей - это изменить пароль root.
sudo
может быть настроен с помощью более тонкой политики безопасности.- Пароль корневой учетной записи не нужно сообщать всем, кому необходимо выполнить какой-либо тип административных задач в системе (см. Предыдущий пункт).
- Аутентификация автоматически истекает через короткое время (которое может быть установлено на желаемое значение или 0); так что если вы уйдете из терминала после запуска команд от имени root с помощью
sudo
, вы не будете оставлять корневой терминал открытым на неопределенный срок.Недостатки использования
sudo
Хотя для настольных ПК преимущества использования
sudo
отлично, есть возможные проблемы, которые необходимо отметить:
- Перенаправление вывода команд, запускаемых с
sudo
требует другого подхода. Например, рассмотримsudo ls > /root/somefile
не будет работать, так как это оболочка, которая пытается записать в этот файл. Вы можете использоватьls | sudo tee -a /root/somefile
добавить илиls | sudo tee /root/somefile
переписать содержимое. Вы также можете передать всю команду процессу оболочки, запущенному под sudo, чтобы файл был записан с правами root, такими какsudo sh -c "ls > /root/somefile"
,- Во многих офисных средах ТОЛЬКО локальный пользователь в системе - root. Все остальные пользователи импортируются с использованием методов NSS, таких как nss-ldap. Чтобы настроить рабочую станцию или исправить ее, в случае сбоя в сети, когда nss-ldap не работает, требуется root. Это делает систему непригодной для использования, если она не взломана. Здесь требуется дополнительный локальный пользователь или включенный пароль root. У локальной учетной записи пользователя должен быть свой $HOME на локальном диске, а не в NFS (или любой другой сетевой файловой системе), и файл.profile/.bashrc, который не ссылается ни на какие файлы при монтировании NFS. Обычно это относится к root, но если вы добавляете учетную запись без полномочий root, вам придется принять эти меры предосторожности вручную. Однако преимущество использования локального пользователя с помощью sudo заключается в том, что команды можно легко отслеживать, как упомянуто в приведенных выше преимуществах.
Внешние ресурсы:
Популярные вопросы:
- Как я могу добавить нового пользователя как sudoer с помощью командной строки?
- В чем различия между "su", "sudo -s", "sudo -i", "sudo su"?
- Почему пользователи никогда не должны использовать обычный sudo для запуска графических приложений?
- Почему плохо войти в систему как root?
- Как запустить команду sudo внутри скрипта?