Sudo

Contents
Intro
How to use sudo
Allow user running sudo without passwords
Examples
usermod: group 'sudo' does not exist

Introduction

sudo is a short form of

substitute user and do

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

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

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

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

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

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

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

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

Как сделать sudo

To пользователь мог выполнить команду 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

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

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

Примечание 2

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

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)

Share in social media: