Sobes.tech
Назад к вопросам
Junior — Middle
65

Каким образом ограничить выполнение однократной команды пользователем с привилегией sudo?

Ответ от нейросети

sobes.tech AI

Ограничить выполнение однократной команды пользователем с привилегией sudo можно несколькими способами:

  1. Настройка sudoers: В файле /etc/sudoers можно явно указать, какие команды разрешены пользователю, и использовать опцию NOEXEC для предотвращения запуска дочерних процессов.

  2. Использование скриптов-оберток: Вместо прямого вызова команды через sudo, создать скрипт, который проверяет, была ли команда уже выполнена (например, через создание флага в файловой системе).

  3. Лимитирование через PAM или внешние инструменты: Можно настроить ограничения на уровне PAM или использовать системы контроля доступа.

Пример настройки в sudoers для разрешения только одной команды:

username ALL=(ALL) NOPASSWD: /usr/bin/команда

Чтобы ограничить однократное выполнение, можно внутри скрипта команды проверять наличие файла-флага и отказывать в повторном запуске.

Пример простого скрипта-обертки:

#!/bin/bash
FLAGFILE="/var/run/command_executed.flag"
if [ -f "$FLAGFILE" ]; then
  echo "Команда уже была выполнена ранее."
  exit 1
else
  touch "$FLAGFILE"
  /usr/bin/команда "$@"
fi

Таким образом, пользователь сможет выполнить команду только один раз, пока не будет удалён файл-флаг.