ПОЖАЛУЙСТА, ЗАМЕЧАНИЕ ЗАМЕЧАНИЯ В КОДЕ ПОСЛЕ ФИ! Чтобы создать учетную запись пользователя через браузер, я позволю php shell_exec выполнить сценарий bash. Несмотря на то, что я уверен (путем проверки/etc/shadow), что имя пользователя не принято, скрипт говорит, что это так. Теперь скрипт выполняет команду useradd, и имя пользователя появляется в/etc/shadow. Похоже, что он выполняет useradd раньше, а затем проверяет, существует ли пользователь?bash script возвращает, что пользователь существует, но пользователь не существует
PHP
$command = "sudo ./createclientcert.sh $userName $userPass";
if(shell_exec("$command echo $?") == 0){
echo 1;
}
Shellscript
#!/bin/bash
newclient() {
getent passwd $1 > /dev/null 2&>1
if [ $? -eq 0 ]; then
echo $?
else
useradd $1
echo $1:$2 | chpasswd
fi
# PLEASE TAKE NOTE!! funny thing is that when code (that had nothing to do with the account creation and was to be removed) that came after fi is in place it works well.
}
newclient "$1" "$2"
'getent PASSWD $ 1>/DEV/нуль 2 &> 1 'не может быть правильным. Это должно было быть 'getent passwd $ 1>/dev/null 2> & 1' – sjsam
Кроме того, не следует' shell_exec («$ comm echo $?») 'Was' shell_exec ("$ command echo $?") ' ?? – sjsam
@sjsam $ comm был опечатка. Простите за это. действительно, 2 &> 1 должно быть 2> & 1, когда я быстро googlecheck, но я скопировал и вложил его из другого сообщения. –