Ограничить пользователя для запуска определенной команды 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» медленны во время работы в сети
  • Где регистрируются события sudo?
  • Трафик tcpdump трафика через SSH - но нет доступа root ssh
  • Как отключить вывод dd?
  • Что вы делаете, когда пытаетесь сделать sudo и PATH корня ушли в kerblooey?
  • Почему я не получаю приглашение пароля при запуске команды в качестве sudo, хотя моя группа пользователей даже не находится в файле sudoers?
  • Сломанный sudo на веб-сервисах amazon ec2 linux centOS
  • Не удалось открыть файл конфигурации '/ dev / fd / 63', ошибка: нет такого файла или каталога для wpa_supplicant
  • Имеет ли loginuid какое-либо влияние на пределы процесса?
  • Как работает `: w! Sudo tee%`
  • Как ограничить права пользователя sudo для журналаctctl на конкретный блок?
  • Linux и Unix - лучшая ОС в мире.