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)

Contacts and cooperation:
I recommend our hosting beget.ru
Write to info@urn.su, info@aredel.com if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: