Так что в основном вам нужно запустить системную команду от имени пользователя root
из скрипта Perl.
Вы можете использовать встроенную функцию system с sudo
внутри.Это создаст новый процесс, в котором команда будет выполнена, пока родительский процесс ожидает, а затем вернет статус завершения этой команды.
Например, эта базовая команда переключается на root
и печатает текущего пользователя:
perl -e 'system("sudo su -c whoami")'
Очевидно, он выводит это на стандартный вывод:
root
Примечания:
, чтобы это работало, вам нужнопользователь вашего приложения сможет переключиться на root
(без необходимости ввода пароля);некоторые могут посчитать, что брешь в системе безопасности (какой-то злоумышленник, который захватил бы ваше приложение, мог бы нанести фатальный ущерб вашей системе)
фактическая команда для переключения на root
пользователь может отличаться в зависимости от вашей ОС;тот, который я использовал в примере, который вы использовали для RedHat
Я искал в CPAN модули, обеспечивающие функциональность "переключение на root", и единственный, что я нашел, это Sudo ;Я не пробовал, но он не обновлялся с 2013 года и имеет мало ожидающих решения проблем от 3 до 9 лет