Как запустить команду sudo без пароля в Linux

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

Прежде чем что-либо менять, помните, что делает эта настройка: любой, кто получит контроль над вашей учетной записью, сможет выполнить разрешенную команду от имени root без дополнительной аутентификации. В руководстве sudoers это записывается NOPASSWDкак метка, которая отключает аутентификацию для соответствующих команд.

Почему команда `sudo -s` не является методом sudo без пароля

Более ранняя рекомендация по запуску команды sudo -sна самом деле не настраивает sudo без пароля. Эта -sопция запускает оболочку под управлением sudo, но политика sudo всё равно может потребовать предварительной аутентификации. Вы также можете увидеть, как несколько команд запускаются без дополнительного запроса, поскольку sudo обычно кэширует успешную аутентификацию на короткий период времени. Это отличается от постоянного NOPASSWDправила.

Выполнение определенной команды sudo без пароля

В этом примере пользователь может alexперезапустить Nginx без пароля. Замените имя пользователя, команду и аргументы значениями, соответствующими вашей системе.

1. Подтвердите свое имя пользователя и путь к команде.

Выполните следующие команды от имени обычного пользователя:

whoami
command -v systemctl

Вторая команда может вернуть /usr/bin/systemctl. Используйте путь, который сообщает ваша система. Правила Sudoers должны идентифицировать команды по их полному пути.

В терминале Linux отображается команда whoami, а команда -v systemctl позволяет определить имя пользователя и полный путь к файлу команды.
Перед написанием правила sudoers проверьте имя учетной записи и полный путь к команде.

2. Создайте отдельный файл конфигурации sudoers.

Вместо прямого редактирования используйте файл /etc/sudoers, расположенный в :visudo/etc/sudoers.d

sudo visudo -f /etc/sudoers.d/alex-nopasswd

Обычно на этом этапе настройки вам потребуется ввести свой пароль. visudoПредпочтительнее использовать , поскольку он проверяет синтаксис перед принятием изменений. В руководстве по visudo в Ubuntu также отмечается, что visudoблокирует файл во время редактирования и проверяет наличие ошибок синтаксического анализа.

В терминале Linux открывается специальный файл sudoers.d с помощью команды sudo visudo для настройки sudo без пароля.
visudoВместо редактирования основного файла политики с помощью обычного текстового редактора, откройте отдельный файл sudoers .

3. Добавьте самое узкое правило NOPASSWD, которое вам необходимо.

В примере перезапуска Nginx добавьте:

alex ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx

Это правило разрешает выполнение от имени root без аутентификации только той команды, которая имеет указанные аргументы. Чтобы разрешить выполнение нескольких конкретных команд, разделяйте их запятыми.

Если вы намеренно хотите, чтобы каждая команда sudo для одного пользователя выполнялась без аутентификации, то общее правило таково:

alex ALL=(ALL:ALL) NOPASSWD: ALL

Это гораздо менее безопасно и редко является лучшим выбором на рабочей станции или в системе общего пользования. Компрометированная пользовательская сессия будет иметь прямой путь к неограниченным привилегиям root.

Редактор Nano, демонстрирующий правило sudoers NOPASSWD для перезапуска nginx, и пример с комментариями и неограниченным доступом.
Правило, специфичное для конкретной команды, безопаснее, чем предоставление права доступа NOPASSWD: ALL.

4. Проверьте и протестируйте правило.

После сохранения и выхода из редактора проверьте полную политику sudoers:

sudo visudo -c

Не пропускайте эту проверку. В visudoдокументации поясняется, что политика sudoers оценивается в целом, поэтому проверка всей конфигурации выявляет проблемы, которые могут быть связаны с включенными файлами.

Затем аннулируйте все кэшированные учетные данные sudo и проведите неинтерактивное тестирование:

sudo -k
sudo -n /usr/bin/systemctl restart nginx

Эта -nопция указывает sudo не запрашивать пароль. Если правило выполняется, команда запускается без запроса пароля. Если аутентификация все же требуется, sudo завершает работу с ошибкой, а не ожидает ввода. Это sudo -nособенно полезно для скриптов, которые ни в коем случае не должны зависать на запросе пароля.

Проверка учетных данных sudo в терминале Linux с помощью команды visudo -c, очистка кэшированных учетных данных и тестирование команды NOPASSWD с помощью команды sudo -n
Проверьте политику, очистите кэшированные учетные данные и используйте команду sudo -n, чтобы убедиться, что для выполнения команды действительно больше не требуется пароль.

Устранение неполадок с sudo без пароля

  • Команда по-прежнему запрашивает пароль: убедитесь, что имя пользователя, путь к команде и аргументы точно соответствуют записи в sudoers.
  • Выполнение этой команды запрещено: выполните команду sudo -l, чтобы просмотреть права доступа, предоставленные вашей учетной записи.
  • Похоже, что параметр drop-in игнорируется: используйте простое имя файла, например alex-nopasswd, . Некоторые конфигурации sudoers игнорируют файлы, /etc/sudoers.dимена которых содержат точку или заканчиваются суффиксами в стиле backup.
  • Вам необходимо отменить изменения: снова откройте всплывающее окно с помощью клавиши sudo visudo -f /etc/sudoers.d/alex-nopasswd, удалите или сузьте правило, сохраните и запустите sudo visudo -cснова.

Рекомендации по использованию

Используйте команду sudo без пароля только в случае конкретной необходимости, например, для строго контролируемого действия службы или задачи автоматизации. Предпочитайте точный путь к команде и точные аргументы, NOPASSWD: ALLпо возможности избегайте их использования и делайте правило sudoers как можно меньше, насколько позволяет задача. Это сохранит большую часть защиты sudo, при этом исключив запрос пароля там, где он действительно необходим.

Оставить комментарий

Как безопасно восстановить потерянные разделы и данные с жесткого диска

Как безопасно восстановить потерянные разделы и данные с жесткого диска

Узнайте, как восстановить потерянные разделы и файлы с помощью TestDisk и PhotoRec. Защитите исходный диск, проведите безопасное сканирование и сохраните восстановленные данные на другой диск.

Как сканировать QR-коды на настольном компьютере с Linux

Как сканировать QR-коды на настольном компьютере с Linux

Сканируйте QR-коды в Linux с помощью CoBang, используя веб-камеру или файл изображения. См. варианты установки, шаги настройки и решения проблем с доступом к камере Flatpak.

Как изменить настройки веб-камеры в Linux с помощью Cameractrls

Как изменить настройки веб-камеры в Linux с помощью Cameractrls

Изменяйте настройки веб-камеры в Linux с помощью Cameractrls: настраивайте экспозицию, цвет, подавление мерцания и другие поддерживаемые параметры, а затем проверяйте совместимые видеорежимы.

Как установить PhpStorm на Linux: Toolbox, Tar.gz, Snap и AUR

Как установить PhpStorm на Linux: Toolbox, Tar.gz, Snap и AUR

Установите PhpStorm на Linux с помощью JetBrains Toolbox или автономного архива tar.gz, а также через Snap и Arch AUR. Java уже включена в комплект.

Как создать резервную копию CD-ROM в формате ISO в Linux

Как создать резервную копию CD-ROM в формате ISO в Linux

Создайте образ CD-ROM ISO в Linux с помощью GNOME Disks или dd. Определите оптический привод, отслеживайте процесс копирования, проверяйте образ и узнавайте, когда поврежденный диск или аудиодиск требует использования другого инструмента.

Как вырезать изображение в Linux с помощью GIMP

Как вырезать изображение в Linux с помощью GIMP

Удаление фона фотографии в Linux с помощью GIMP: обведите контур объекта, удалите выделенный фон, сохранив прозрачность, и экспортируйте многоразовый PNG-файл.

Как установить Cisco Packet Tracer на Linux

Как установить Cisco Packet Tracer на Linux

Загрузите Cisco Packet Tracer 9.0.1 для Ubuntu 64-бит, установите DEB-пакет с помощью APT, примите лицензионное соглашение в Терминале и войдите в систему, чтобы начать лабораторную работу.

Скачайте FlightGear бесплатно: официальное руководство по установке

Скачайте FlightGear бесплатно: официальное руководство по установке

Скачайте FlightGear бесплатно с официального сайта. Сравните пакеты для Windows, macOS и Linux, установите файлы данных и совершите свой первый полет.

Настольное приложение Google Tasks: как им пользоваться на компьютере

Настольное приложение Google Tasks: как им пользоваться на компьютере

Откройте Google Задачи в браузере, добавьте ярлык Chrome или запустите приложение, и управляйте задачами с указанием даты через Календарь и Gmail.

OKSampler: Бесплатный и простой музыкальный сэмплер для клавишных ритмов.

OKSampler: Бесплатный и простой музыкальный сэмплер для клавишных ритмов.

OKSampler сопоставляет MP3-клипы с клавишами клавиатуры и может зацикливать аудио. Узнайте, что делает эта старая бесплатная программа, на чем заканчиваются ее старые функции и что нужно проверить перед загрузкой.