Запуск useradd с помощью shell_exec

После попытки предоставить разрешения для / etc / passwd, команда useradd не будет выполняться из shell_exec () php; Я также попытался visudo и изменить владельца passwd, ошибка все еще

useradd: Permission denied. useradd: cannot lock /etc/passwd; try again later.

Как создать учетные записи пользователей bash с помощью php?

1
задан 20 March 2018 в 16:11

2 ответа

Проблема заключается в разрешениях пользователя 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.

-1
ответ дан 17 July 2018 в 18:28

Проблема заключается в разрешениях пользователя 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.

-1
ответ дан 23 July 2018 в 19:15
  • 1
    По умолчанию Root не разрешает логин через пароль. Это по-прежнему небезопасно, потому что вы должны разрешать корневым входам всюду, если вы не установите его, чтобы SSH слушал только локально (что затем защищает вас от попыток принудительного принуждения). Однако это все еще небезопасно. – Thomas Ward♦ 20 March 2018 в 17:21
  • 2
    Я нахожу его более безопасным, чем разрешение на весь сценарий, лучший способ - предоставить разрешения конкретному пользователю, а затем локальный ssh ​​с этим пользователем. – storm 20 March 2018 в 18:01
  • 3
    как парень, занимающийся ИТ-безопасностью, я согласен ... в какой-то момент. Фактический вопрос: «Почему вы хотите, чтобы PHP управлял вашими пользователями», что является его собственной проблемой безопасности. – Thomas Ward♦ 20 March 2018 в 18:32

Другие вопросы по тегам:

Похожие вопросы: