Я написал perl-скрипт, которому нужны права sudo, но он принимает параметры, которые всегда разные. например

sudo /home/user/script.pl user

Думаю добавить это в visudo не получится. Это возможно? Если нет, я думал о том, чтобы использовать что-то вроде трубы для решения этой проблемы, например:

echo user | sudo /home/user/script.pl

Есть ли способ передать переменные таким образом в Perl-скрипт?

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

0
TheChosenOne 23 Окт 2019 в 23:33
3
Просто добавив /home/user/script.pl, так как команда позволит вызывать ее с любыми аргументами.
 – 
Grinnz
23 Окт 2019 в 23:38
Спасибо. Я этого не знал. Я попробую.
 – 
TheChosenOne
24 Окт 2019 в 22:19

1 ответ

Почему бы не использовать ARGV? содержимое tmp/script.pl

use strict;
use warnings;

print join(',', @ARGV);

exit;

И как результат

$ sudo perl tmp/script.pl foo bar
> foo,bar

Или вы можете использовать Getopt::Long (расширенная обработка параметров командной строки)

0
T'East 24 Окт 2019 в 12:52