Я написал perl-скрипт, которому нужны права sudo, но он принимает параметры, которые всегда разные. например
sudo /home/user/script.pl user
Думаю добавить это в visudo не получится. Это возможно? Если нет, я думал о том, чтобы использовать что-то вроде трубы для решения этой проблемы, например:
echo user | sudo /home/user/script.pl
Есть ли способ передать переменные таким образом в Perl-скрипт?
Единственный другой вариант, который я вижу, это запись параметров в файл. Потом еще могу добавить скрипт в visudo.
1 ответ
Почему бы не использовать ARGV? содержимое tmp/script.pl
use strict;
use warnings;
print join(',', @ARGV);
exit;
И как результат
$ sudo perl tmp/script.pl foo bar
> foo,bar
Или вы можете использовать Getopt::Long (расширенная обработка параметров командной строки)
Похожие вопросы
Новые вопросы
perl
Perl - это процедурный высокоуровневый динамический язык программирования общего назначения, известный своей собственной поддержкой регулярных выражений и возможностей синтаксического анализа строк. Пожалуйста, используйте этот тег для вопросов о Perl в целом. Для вещей, связанных с новым (но связанным) языком Raku (ранее «Perl 6»), используйте тег raku. Для регулярных выражений в стиле Perl на других языках используйте тег regex или, если они основаны на библиотеке PCRE, тег pcre.
/home/user/script.pl
, так как команда позволит вызывать ее с любыми аргументами.