Добавить пользователя на сервер Ubuntu из PHP-скрипта - PullRequest
1 голос
/ 05 апреля 2011

Я пытаюсь написать скрипт PHP, который выполняет команду оболочки (через system()?) Для добавления нового пользователя на сервер.Я думаю об использовании useradd или adduser, но не знаю, как заставить его работать.Какие флаги необходимо выполнить useradd в скрипте?И как бы я установил разрешения для скрипта, чтобы он выполнялся правильно?Это не работает:

<?

$user = $_GET['user'];

system("sudo useradd -m -p 4dk/kBWvKaP52/POJYOZGLam8qZnCkQtdw== $user; echo $user");

?>

1 Ответ

4 голосов
/ 05 апреля 2011

Вам нужно будет добавить строку к /etc/sudoers, как

www-data ALL=(root) NOPASSWD: /usr/sbin/useradd

Это позволяет www-данным запускать команду useradd.

Вам также может понадобиться закомментировать эту строку, если она существует в /etc/sudoers:

Defaults requiretty

Кстати, неплохо бы избежать ввода с помощью escapeshellarg () :

$user = escapeshellarg($_GET['user']);
system("sudo useradd -m -p 4dk/kBWvKaP52/POJYOZGLam8qZnCkQtdw== $user; echo $user");
...