Ограничить пользователя для запуска определенной команды 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 

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

  • В чем разница между 'sudo' и 'su -c'
  • Почему мой sudo запрашивает пароль только один раз, но оценивает трижды?
  • Как отправить на фоновый процесс, запущенный с sudo?
  • sudo -u git clone
  • Нет пароля для запуска команды как root для фиксированной команды?
  • Как разрешить пользователям без полномочий root управлять службой systemd с помощью экземпляров?
  • Первое судо всегда медленно
  • sudo script - лучшая практика?
  • 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 
    Interesting Posts

    OpenSSH: как закончить блок соответствия

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

    Совместное использование файлов с Windows

    Проблема pppd по последовательному кабелю

    Автозаполнение zsh без запроса

    Дробная файловая система Drobo игнорирует / etc / fstab, автоматически отключается после того, как соединение прерывается

    Рандомизация памяти в Linux

    объединить два файла без добавления новой строки

    копирование определенных файлов в каталог

    Как запустить команду на переднем плане, а затем отправить на задний план

    Звук не выходит из наушников в корифеоне 18-го века / Fedora 24; громкоговорители прекрасно работают

    Под Archlinux. Как отслеживать информацию об отладке для пакетов?

    MTS MBlaze 3G USB Dongle в монетном дворе 14 Cinnamon

    Регулярное выражение с sed

    Как быстро переключаться между дисплеями в Fedora 18

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