sudo

Содержание
Введение
Как сделать sudo
sudo без пароля
Другие примеры
usermod: group 'sudo' does not exist
sudo не в root
Похожие статьи

Введение

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 (Rocky, 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 без ввода пароля. Это очень удобно для работы с локальными виртуальными машинами

Например, я добавляю

andrei ALL=(ALL) NOPASSWD:ALL

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

Можно достичь этого результата не открывая файл

echo "andrei ALL=(ALL:ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/andrei

Подробнее про команду tee читайте здесь

Примеры

Разрешить пользователям, входящим в группу (англ.) «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 дистрибутив, например Rocky или CentOS

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

Выполните

usermod -aG wheel $(whoami)

РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе

Конец рекламы. Если там пусто считайте это рекламой моей телеги

sudo -u

-u user, --user=user Run the command as a user other than the default target user (usually root). The user may be either a user name or a numeric user-ID (UID) prefixed with the ‘#’ character (e.g., #0 for UID 0). When running commands as a UID, many shells require that the ‘#’ be escaped with a backslash (‘\’). Some security policies may restrict UIDs to those listed in the password database. The sudoers policy allows UIDs that are not in the password database as long as the targetpw option is not set. Other security policies may not support this.

Похожие статьи
Linux
FAQ
Debian
Ubuntu
CentOS
Rocky
Bash
Настройка сети
Файлы, директории, ссылки…
Изучить свободное место на диске
Объединить .pdf файлы
diff: сравнение файлов
find: поиск файлов
wget: скачивание файлов
kill: завершить процесс
curl
make
signal: системные сигналы
env: переменные окружения
localectl: язык
systemctl: Список активных сервисов
Firewall
SCP: обмен файлами;
SSH: удалённый доступ
cron: задания по расписанию
sudo
Мониторинг ресурсов

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

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

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