Sudo

Содержание статьи
Введение
Как сделать sudo
Разрешить пользователю не вводить пароль при выполнении sudo
Другие примеры
usermod: group 'sudo' does not exist
Статьи про Ubuntu

Введение

sudo это сокращение от английского

substitute user and do

Что по-русски звучит как

подменить пользователя и выполнить

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

Основная идея — дать пользователям как можно меньше прав, при этом достаточных для решения поставленных задач.

Программа поставляется для большинства UNIX и UNIX-подобных операционных систем.

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

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

В большинстве случаев грамотная настройка sudo делает небезопасную работу от имени суперпользователя ненужной.

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

Имеется возможность запрещать и разрешать определённым пользователям или группам выполнение конкретного набора программ, а также разрешить выполнение определённых программ без необходимости ввода своего пароля.

Как сделать sudo

Чтобы пользователь мог выполнить команду sudo успешно, он должен быть добавлен в группу sudo (Debian, Ubuntu…) или wheel (CentOS, RedHat …)

Проверить состоит ли пользователь andrei в sudo можно командой

groups

Если результат примерно такой

andrei cdrom floppy audio dip video plugdev netdev bluetooth lpadmin scanner

То есть sudo в списке нет. Нужно добавить его командой

adduser andrei sudo

Или для .rpm

usermod -aG wheel $(whoami)

Если всё прошло успешно, Вы можете проверить, что sudo теперь в списке групп

groups

andrei cdrom floppy sudo audio dip video plugdev netdev bluetooth lpadmin scanner

Если что-то пошло не так - прочитайте примечания.

Примечание 1

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

Начиная с 10-й версии это не так тривиально, советую прочитать предыдущий параграф bash: adduser: command not found

Примечание 2

Если в одном терминале Вы видите, что пользователь уже в группе sudo а в другом терминале он не может выполнить sudo - выполните команду

exit

И залогиньтесь снова.

Примечание 3

Описание того, кто и как может использовать sudo находится в файле /etc/sudoers

Редактировать его напрямую не нужно, можно зайти в /etc/sudoers.d либо вызвать из-под root утилиту

visudo

И что-то там подправить на свой страх и риск.

Разрешить пользователю не вводить пароль при выполнении sudo

Убедитесь, что пользователь добавлен в группу sudo (wheel для .rpm)

Выполните

sudo visudo

Добавьте в конец файла

username ALL=(ALL) NOPASSWD:ALL

Теперь пользователь username сможет выполнять все команды sudo без ввода пароля. Это очень удобно для работы с локальными виртуальными машинами

Саму команду sudo всё-равно нужно писать

Примеры

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

%admin ALL=(ALL) ALL

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

user1 ALL=(user2, user3)NOPASSWD: ALL

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

backup ALL=NOPASSWD: /usr/bin/rsync

Как добавить русский язык для клавиатуры

Открываем файл /etc/default/keyboard командой

sudo vi /etc/default/keyboard

Находим нужные строчки

И добавляем ,ru в XKBLAYOUT="us" grp:ctrl_shift_toggle в XKBOPTIONS=""

Получится такой кусок

XKBLAYOUT="us,ru" XKBVARIANT="" XKBOPTIONS="grp:ctrl_shift_toggle"

Примечание 1

Если у Вас вызывает трудности редактирование файлов в редакторе vi Прочитайте статью

«Пример использования VI для смены языка в Linux»

usermod: group 'sudo' does not exist

Если вы попытались добавить пользователя в группу sudo с помощью usermod и получили

usermod: group 'sudo' does not exist

Скорее всего вы используете .rpm дистрибутив, например CentOS

В .rpm группа называется wheel а не sudo

Выполните

usermod -aG wheel $(whoami)

Поиск по сайту

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: