sudo

sudo (англ. Substitute User and do, дословно «подменить пользователя и выполнить») — программа для системного администрирования UNIX-систем, позволяющая делегировать те или иные привилегированные ресурсы пользователям с ведением протокола работы. Основная идея — дать пользователям как можно меньше прав, при этом достаточных для решения поставленных задач. Программа поставляется для большинства UNIX и UNIX-подобных операционных систем.

Sudo
Логотип программы Sudo
Скриншот программы Sudo
sudo в Ubuntu
Тип программы для защиты информации[d], инструмент командной строки[d] и свободное и открытое программное обеспечение
Авторы Robert Coggeshall[d][2] и Cliff Spencer[d][2]
Разработчик Тодд Миллер[d]
Написана на Си[3]
Операционная система Unix-подобная операционная система
Последняя версия 1.9.12[1] (23 октября 2022; 17 месяцев назад (2022-10-23))
Репозиторий github.com/sudo-project/…
Лицензия лицензия ISC
Сайт sudo.ws (англ.)
Логотип Викисклада Медиафайлы на Викискладе

Команда sudo предоставляет возможность пользователям выполнять команды от имени суперпользователя root, либо других пользователей. Правила, используемые sudo для принятия решения о предоставлении доступа, находятся в файле /etc/sudoers (для редактирования файла можно использовать специальный редактор visudo, запускаемый из командной строки без параметров, в том числе без указания пути к файлу); язык их написания и примеры использования подробно изложены в man sudoers(5).

В большинстве случаев грамотная настройка sudo делает небезопасную работу от имени суперпользователя ненужной. Все действия оказываются выполнимы из-под аккаунта пользователя, которому разрешено использовать sudo без ограничений. Имеется возможность запрещать и разрешать определённым пользователям или группам выполнение конкретного набора программ, а также разрешить выполнение определённых программ без необходимости ввода своего пароля[4].

Примеры править

Разрешить пользователям, входящим в группу[en] «admin», выполнять команды с правами любого пользователя (с запросом пароля):

%admin ALL=(ALL) ALL

Позволить пользователю «user1» выполнять команды с правами «user2» или «user3», не запрашивая пароль:

user1 ALL=(user2, user3)NOPASSWD: ALL

Разрешить пользователю «backup» выполнять команду /usr/bin/rsync без запроса пароля:

backup ALL=NOPASSWD: /usr/bin/rsync

Особенности править

Программу критикуют, в частности, за невозможность выполнять некоторые команды. К примеру:

sudo cat sources.list > /etc/apt/sources.list

выдаст ошибку прав доступа (так как с правами root выполняется только процесс cat, а перенаправление выполняет shell с правами обычного пользователя), хотя такое можно сделать, использовав конвейер:

cat sources.list | sudo tee /etc/apt/sources.list

также можно выполнить shell с административными правами, а строку к выполнению взять в кавычки, используя параметр «»:

sudo sh -c 'cat sources.list > /etc/apt/sources.list'

или же попасть в shell интерактивно аналогично работе su, используя параметр «-s»:

sudo -s

можно и так

sudo su

или выполнив

sudo sh

Схожие программы править

В OpenSolaris вместо sudo используется команда pfexec, работающая на основе RBAC.

В OpenBSD, по умолчанию, используется собственная утилита doas[5].

Windows имеет похожую команду runas.

Примечания править

  1. Sudo 1.9.12. Дата обращения: 4 ноября 2022. Архивировано 4 ноября 2022 года.
  2. 1 2 A Brief History of Sudo
  3. The sudo Open Source Project on Open Hub: Languages Page — 2006.
  4. Администратор в Ubuntu, или что такое sudo | Русскоязычная документация по Ubuntu. Дата обращения: 3 апреля 2013. Архивировано из оригинала 4 апреля 2013 года.
  5. doas(1) - OpenBSD manual pages. man.openbsd.org. Дата обращения: 8 декабря 2023. Архивировано 8 декабря 2023 года.

См. также править

Ссылки править