我有一個正在嘗試添加用戶的PHP腳本。這裏有一個簡單的代碼片段:useradd - 不與-p選項一起工作
<?php
$groupname = 'mygroup';
$username = 'test';
$password = crypt('Pass123!');
var_dump($password);
$command = "sudo useradd -G $groupname $username -p $password -s /bin/false";
var_dump($command);
$output = array();
$return = 0;
exec($command, $output, $return);
var_dump($output);
var_dump($return);
運行此腳本後,我看到在/ etc/passwd文件中的用戶test
。但是,我在/ etc/shadow文件中看不到密碼。我的直覺是我以某種方式錯誤地設置了密碼。
任何想法我做錯了什麼?謝謝。
UPDATE:
當我創建通過命令行的用戶,並添加使用passwd
命令口令,加密的字符串我看到在/ etc/shadow中是非常不同的是什麼crypt
功能在我的PHP腳本生成。
更新2
每mario
的建議:
<?php
$groupname = 'mygroup';
$username = 'test';
$password = crypt('Pass123!');
var_dump($password);
$command = "sudo useradd -G '$groupname' '$username' -p '$password' -s /bin/false";
$command = escapeshellcmd($command);
var_dump($command);
$output = array();
$return = 0;
exec($command, $output, $return);
var_dump($output);
var_dump($return);
注意:這不是爲我定什麼。問題仍然是一樣的。
哪個用戶正在執行PHP腳本,他有權利這樣做須藤useradd的沒有密碼? – Dukeatcoding 2013-01-30 08:57:28