У меня есть пользователь abc, которому я хочу дать очень ограниченные разрешения. Одним из них является «abc», который должен иметь возможность исходить из файла, но не читать его. Итак, я сделал root владельцем этого файла и пытаюсь предоставить доступ sudo этому пользователю «abc», чтобы он мог его получить.
abc ALL = (root) NOPASSWD: source /file/path
Когда я пишу это в файл /etc/sudoers, я получаю синтаксическую ошибку.
Я узнал, что «источник» — это встроенная функция, а не программа, которую можно использовать в файле sudoers. Если да, то есть ли другой выход из моей проблемы?
must beable to source a file but not read it
Это невозможно.source
встроен в bash, его нельзя передать в sudo. Вы можете создать оболочку, которая при выполнении выведет рассматриваемый файл. - person KamilCuk   schedule 08.01.2019/bin/bash -c "source /file/path"
, хотя я не понимаю, почему вы просто не запускаете скрипт без использования встроеннойsource
, но, конечно, это решать вам. Однако я не думаю, что это ВАША ошибка исчезнет, потому что вы сказали, что получаете синтаксическую ошибку в файле sudoers, и это означает, что sudo даже не пытается вызвать ваш (ошибочный ) исходный код. Поскольку строка, которую вы разместили, не является синтаксически неправильной, ошибка должна быть где-то еще. Проверьте, например, окончания строк в файле. - person user1934428   schedule 08.01.2019