Выполните команду как root в сборке плагина Cpanel с помощью Perl - PullRequest
0 голосов
/ 04 декабря 2018

Я новичок в Perl.Я создаю плагин для Cpanel для установки SSL-сертификатов, когда пользователь щелкает опцию.

Я должен выполнить команду от имени root внутри кода Perl.Как я могу это сделать?

1 Ответ

0 голосов
/ 05 декабря 2018

Так что в основном вам нужно запустить системную команду от имени пользователя root из скрипта Perl.

Вы можете использовать встроенную функцию system с sudo внутри.Это создаст новый процесс, в котором команда будет выполнена, пока родительский процесс ожидает, а затем вернет статус завершения этой команды.

Например, эта базовая команда переключается на root и печатает текущего пользователя:

perl -e 'system("sudo su -c whoami")'

Очевидно, он выводит это на стандартный вывод:

root

Примечания:

  • , чтобы это работало, вам нужнопользователь вашего приложения сможет переключиться на root (без необходимости ввода пароля);некоторые могут посчитать, что брешь в системе безопасности (какой-то злоумышленник, который захватил бы ваше приложение, мог бы нанести фатальный ущерб вашей системе)

  • фактическая команда для переключения на rootпользователь может отличаться в зависимости от вашей ОС;тот, который я использовал в примере, который вы использовали для RedHat

  • Я искал в CPAN модули, обеспечивающие функциональность "переключение на root", и единственный, что я нашел, это Sudo ;Я не пробовал, но он не обновлялся с 2013 года и имеет мало ожидающих решения проблем от 3 до 9 лет

...