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

Вот сценарий:

#!/bin/bash user='my_sudo_user' sudo -lU $user 

Я пытался ограничить свой non_sudo_user возможностью запуска этого скрипта. Используя visudo , я попробовал:

 non_sudo_user ALL=(ALL) NOPASSWD: /bin/bash /full/path/script.sh non_sudo_user ALL=(ALL) NOPASSWD: /usr/bin/sudo -lU non_sudo_user ALL=(ALL) NOPASSWD: /usr/bin/sudo -lU * # unsafe 

Ни один из них не работает. Я получаю это сообщение:

 Sorry, user non_sudo_user is not allowed to execute 'list' as my_sudo_user on host123. 

Но я представил -l в файле sudoer .

Что я могу сделать? Кстати, это Ubuntu.

EDIT :

Я действительно запускаю этот скрипт:

 for u in $(awk -F'[/:]' '{if($3>=1000&&$3!=65534) print $1}' /etc/passwd); do sudo -lU $u ; done 

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

2 Solutions collect form web for “Ограничить пользователя для запуска определенной команды sudo”

EDIT: полностью переписать после того, как OP предоставила дополнительную информацию.

Укажите пользователя в / etc / sudoers как имеющее разрешение на выполнение /usr/sbin/sudo .

Это позволит им выполнить команду sudo, но у них не будет никаких прав для запуска каких-либо других команд.

Я просто тестировал это на CentOS-7.3.1611 с совершенно новой учетной записью пользователя:

testusr ALL=(ALL) NOPASSWD: /usr/sbin/sudo

Я не знаю, есть ли какие-либо последствия для безопасности для указания самой команды sudo в списке разрешенных команд. Пожалуйста, просмотрите и протестируйте, прежде чем полагаться на это в производственной среде … это может быть небезопасно.

Я думаю, вы можете только перечислять команды, которые может выполнять другой пользователь, если вы можете запускать произвольные команды как (ВСЕ) этого пользователя. Поэтому вместо этого …

В суде:

 non_sudo_user ALL=(ALL) NOPASSWD: /usr/bin/sudo -l 

И чтобы их перечислить, работая как non_sudo_user :

 for target_user in user1 user2 user3... ; do sudo -u "$target_user" sudo -l done 
  • Вызовите sudo из скрипта, вызванного xbindkeys
  • sudo не может открыть / etc / sudoers
  • Выполнить su -s с аргументами
  • Измените файлы с помощью редактора, которому необходимы права sudo
  • Странное поведение скрипта bash
  • Команды «sudo» медленны во время работы в сети
  • Как выполнить изменения на удаленном сервере с правами root?
  • Подскажите пароль на sudo?
  • Почему мне запрашивают пароль sudo, когда я указал «NOPASSWD» в файле / etc / sudoers?
  • как изменить разрешение файла / proc / self / pagemap.?
  • sudo не позволяет мне запускать cp
  • Как предоставить кому-то еще доступ к моему серверу linux
  • Interesting Posts

    Как настроить gpg для ввода кодовой фразы только один раз за сеанс

    настройка rsync для инкрементного резервного копирования и восстановления

    Соответствие POSIX программы cd?

    Как я могу остановить grep, возвращая себя

    Могу ли я настроить linux, чтобы принять соединение по коммутируемому соединению с моим старым ноутбуком windows95?

    OS X / Linux one-liner / script, чтобы найти самую большую повторяющуюся группу строк в текстовом файле?

    Как создать панель запуска графического интерфейса для xfce4-терминала с рыбой, но наследуя переменные среды из bash?

    В crontab я могу указать количество дней до конца месяца?

    Почему Enlightenment 17 (Debian 8) не показывает значок при подключении компакт-диска или USB-накопителя?

    Каковы точные различия между awk и cut с помощью grep?

    Espeak показывает некоторые предупреждения и ошибку ввода-вывода

    удалять старые файлы журналов, кроме последнего (с буквенно-цифровой сортировкой)

    Как заменить текст в столбце

    Команды для чтения и извлечения компакт-диска?

    В чем разница между «realpath» и «readlink -f»

    Linux и Unix - лучшая ОС в мире.