Обеспечение безопасности записи sudoers с использованием контрольной суммы sha512

Вопрос или проблема

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

username ALL = NOPASSWD: sha512:d5655d0f3f1772046a2ff996942d2f1e5s3f9e9fcb93dc062463ec9584sd67cbcecf459215ac627s5eff2036df47a7c6f036e6f75e53c83362dc42024s95b795 /home/username/script.sh

Контрольная сумма sha512 защищает скрипт от манипуляций, позволяя ему выполняться от имени root без пароля.

У меня есть некоторые записи, которые требуют выполнения конкретного скрипта конкретным бинарным файлом, например:

Debian-snmp ALL = NOPASSWD: /bin/sh /etc/snmp/raspberry.sh

Какой правильный синтаксис для включения контрольной суммы sha512 для скрипта raspberry.sh? У пользователя Debian-snmp нет оболочки, поэтому мне нужно указать это в этой строке, чтобы сделать выполнение raspberry.sh, но я не могу понять правильный синтаксис для sha512.

Ответ или решение

Для защиты выполнения скриптов с привилегиями суперпользователя без запроса пароля, используя хеш-сумму SHA-512 в настройках файла sudoers, необходимо следовать определенной структуре синтаксиса. В приведенной вами ситуации, когда пользователь Debian-snmp не имеет интерактивной оболочки, вам нужно будет правильно прописать хеш-сумму для скрипта raspberry.sh.

Создание хеш-суммы SHA-512

Сначала создадим SHA-512 хеш вашего скрипта raspberry.sh. Это можно сделать с помощью команды:

sha512sum /etc/snmp/raspberry.sh

Этот процесс выдаст строку, подобную следующей:

d565d0f3f1772046a2ff996942d2f1e5s3f9e9fcb93dc062463ec9584sd67cbcecf459215ac627s5eff2036df47a7c6f036e6f75e53c83362dc42024s95b795  /etc/snmp/raspberry.sh

Конструкция записи в sudoers

Для записи в файл sudoers с использованием SHA-512, вы можете использовать следующий синтаксис:

Debian-snmp ALL=(ALL) NOPASSWD: sha512:d565d0f3f1772046a2ff996942d2f1e5s3f9e9fcb93dc062463ec9584sd67cbcecf459215ac627s5eff2036df47a7c6f036e6f75e53c83362dc42024s95b795 /bin/sh /etc/snmp/raspberry.sh

В этой записи:

  • Debian-snmp — имя пользователя, для которого назначены права.
  • ALL=(ALL) — указывает, что этот пользователь может запускать указанный скрипт от имени любого пользователя (в том числе и root).
  • NOPASSWD: — позволяет выполнять данное действие без запроса пароля.
  • sha512:<хеш> — это ваш сгенерированный SHA-512 хеш, который защищает от изменений скрипта.
  • /bin/sh /etc/snmp/raspberry.sh — это полный путь до исполняемого файла с необходимыми аргументами.

Заключение

Использование хеш-сумм в sudoers файле добавляет уровень безопасности к управлению доступом для выполнения скриптов, особенно в ситуациях, когда требуется избежать ввода пароля. Будьте осторожны при редактировании файла sudoers, так как ошибки могут привести к потере доступа к sudo. Рекомендуется использовать команду visudo, которая проверяет файл на наличие синтаксических ошибок перед его сохранением.

Следуйте данным рекомендациям, и вы сможете уверенно управлять правами пользователей с использованием SHA-512 хешей в sudoers.

Оцените материал
Добавить комментарий

Капча загружается...