Назад | Перейти на главную страницу

Разрешить любые аргументы для данной команды с помощью sudo [closed]

У меня есть следующая запись конфигурации sudo, которую я добавил через sudo visudo:

mark ALL = NOPASSWD: /usr/bin/lxc-ls*

Я могу бегать lxc-ls с моим пользователем все в порядке, но я не могу добавлять какие-либо параметры, не требуя, чтобы я префикс команды с sudo.

$ whoami
mark
$ lxc-ls
test-container
$ lxc-ls --fancy
lxc-ls: error: You must be root to access advanced container properties. Try running: sudo /usr/bin/lxc-ls

Любая идея, как я могу редактировать через sudo visudo разрешить любой аргумент после команды?

Я не хочу добавлять к команде префикс sudo, так как я использую библиотеку python для выполнения команды, и это забавно с префиксами sudo.

Обновить:

Я пробовал удалить * но это тоже не сработало:

$ sudo grep '\-ls' /etc/sudoers
mark ALL = NOPASSWD: /usr/bin/lxc-ls
$ lxc-ls
test-container
$ lxc-ls --fancy
...
lxc-ls: error: You must be root to access advanced container properties. Try running: sudo /usr/bin/lxc-ls

Из руководство по sudoers :

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

Итак, отбросьте *.

Вам все равно нужно будет добавить к команде lxc-ls префикс sudo или написать простую оболочку, которая сделает это за вас.

Это не как sudo работает. Файл sudoers просто предоставляет пользователю права на команду при префиксе команды sudo, не так, чтобы вы могли запустить его без префикса sudo. Вам нужно будет написать сценарий-оболочку (например, простой файл bash) для выполнения команды, если ваш собственный сценарий не может этого сделать.