После попытки предоставить разрешения для / etc / passwd, команда useradd не будет выполняться из shell_exec () php; Я также попытался visudo и изменить владельца passwd, ошибка все еще
useradd: Permission denied.
useradd: cannot lock /etc/passwd; try again later.
Как создать учетные записи пользователей bash с помощью php?
Проблема заключается в разрешениях пользователя APACHE. Вы можете либо предоставить права sudo на свой скрипт, что не самая лучшая идея, безопасная. Или используйте ssh2_connect для подключения к вашему серверу с помощью ssh и запускайте только useradd как root.
$connection = ssh2_connect('localhost', 22);
if (ssh2_auth_password($connection, 'root', '')) {
$username = 'username';
$password = 'password';
ssh2_exec($connection, "useradd $username -m -p $password -d /home/$username/ -s /bin/false");
} else {
die('Authentication Failed...');
}
См. документы ssh2_connect и ssh2_auth_password.
Проблема заключается в разрешениях пользователя APACHE. Вы можете либо предоставить права sudo на свой скрипт, что не самая лучшая идея, безопасная. Или используйте ssh2_connect для подключения к вашему серверу с помощью ssh и запускайте только useradd как root.
$connection = ssh2_connect('localhost', 22);
if (ssh2_auth_password($connection, 'root', '')) {
$username = 'username';
$password = 'password';
ssh2_exec($connection, "useradd $username -m -p $password -d /home/$username/ -s /bin/false");
} else {
die('Authentication Failed...');
}
См. документы ssh2_connect и ssh2_auth_password.