Вопросы, связанные с командой sudo, которая позволяет пользователям запускать программы с привилегиями другого пользователя (обычно это пользователь root).

sudo - это рекомендуемый инструмент для повышения привилегий для выполнения административных задач в Ubuntu. Его использование более гранулировано и настраивается, чем его аналог su.

Эта команда позволяет выдающему пользователю:

  • Выполнить определенную команду от имени суперпользователя или другого пользователя.
  • Запустите интерактивную оболочку от имени суперпользователя или другого пользователя.
  • Повышение привилегий определенных команд.

Двоичный файл sudo включен в пакет sudo, который также включает в себя инструменты visudo и sudoedit. Использование visudo является рекомендуемым способом редактирования файла /etc/sudoers, который настраивает поведение sudo, в то время как sudoedit открывает редактор по умолчанию с привилегиями суперпользователя.

Команда sudo может быть настроена с использованием файла /etc/sudoers. Это следует определенному синтаксису; использование visudo рекомендуется для предотвращения ошибок. Использование visudo требует повышенных привилегий, поэтому обычный пользователь выдаст sudo visudo.

Желательно всегда использовать минимальные привилегии, необходимые для любого действия. sudo следует использовать только при необходимости.

Из справочной вики Ubuntu :

Преимущества использования sudo

У Ubuntu есть ряд преимуществ, позволяющих по умолчанию отключать root-логины. , в том числе:

  1. У установщика меньше вопросов.
  2. Пользователям не нужно запоминать дополнительный пароль для случайного использования (то есть пароль root). Если они это сделают, они, скорее всего, забудут об этом (или запишут это небезопасно, позволяя любому легко взломать их систему).
  3. По умолчанию он избегает интерактивного входа в систему «Я могу сделать все». Прежде чем произойдут серьезные изменения, вам будет предложено ввести пароль, что заставит вас задуматься о последствиях того, что вы делаете.
  4. sudo добавляет запись в журнале выполнения команды (команд) (в /var/log/auth.log). Если вы запутались, вы можете вернуться и посмотреть, какие команды были запущены.
  5. На сервере каждый взломщик, пытающийся взломать свой путь, будет знать, что у него есть учетная запись с именем root, и попытается сделать это первым. Чего они не знают, так это имена других ваших пользователей. Так как пароль учетной записи root заблокирован, эта атака становится практически бессмысленной, поскольку в первую очередь нет пароля, который можно взломать или угадать.
  6. Позволяет легко передавать права администратора путем добавления и удаления пользователей из групп. Когда вы используете один пароль root, единственный способ отменить авторизацию пользователей - это изменить пароль root.
  7. sudo можно настроить с помощью более детальной политики безопасности.
  8. Пароль корневой учетной записи не нужно сообщать всем, кому необходимо выполнить какой-либо тип административных задач в системе (см. Предыдущий пункт).
  9. Аутентификация автоматически истекает через короткое время (которое может быть установлено на желаемое значение или 0); поэтому, если вы уйдете из терминала после запуска команд от имени root с помощью sudo, вы не оставите корневой терминал открытым на неопределенное время.

Недостатки использования sudo

Хотя для настольных компьютеров преимущества использования sudo велики, существуют возможные проблемы, которые следует отметить:

  1. Перенаправление вывода команд, запускаемых с sudo, требует другого подхода. Например, рассмотрим sudo ls > /root/somefile не будет работать, так как это оболочка, которая пытается записать в этот файл. Вы можете использовать ls | sudo tee -a /root/somefile для добавления или ls | sudo tee /root/somefile для перезаписи содержимого. Вы также можете передать всю команду процессу оболочки, запущенному под sudo, чтобы файл был записан с правами суперпользователя, например sudo sh -c "ls > /root/somefile".
  2. Во многих офисных средах ТОЛЬКО локальный пользователь в системе - root. Все остальные пользователи импортируются с использованием методов NSS, таких как nss-ldap. Чтобы настроить рабочую станцию ​​или исправить ее в случае сбоя сети, когда nss-ldap сломан, Корень требуется. Это делает систему непригодной для использования, если она не взломана. Здесь требуется дополнительный локальный пользователь или включенный пароль root. У локальной учетной записи пользователя должен быть свой $ HOME на локальном диске, не в NFS (или любой другой сетевой файловой системе) и файл .profile / .bashrc, который не ссылается ни на какие файлы при монтировании NFS. Обычно это относится к root, но если вы добавляете учетную запись без полномочий root, вам придется принять эти меры предосторожности вручную. Однако преимущество использования локального пользователя с помощью sudo заключается в том, что команды можно легко отслеживать, как упомянуто в приведенных выше преимуществах.

Внешние ресурсы:

Популярные вопросы: