已安裝super模組,可以執行透過php執行useradd指令,但問題在於我不知linux對密碼使用何種加密方式,所以無法在useradd同時指定密碼(使用明碼會無法登入),而passwd又是互動式的輸入,無法直接以命令指定密碼
請問有什麼指令是可以直接指定user的密碼,或者ubuntu的密碼加密方式為何呢?
我觀察過/etc/shadow這個檔案,密碼的前置字元為$6$,應是使用SHA-512的加密方式,但我用php中的encrypt and sha1兩個function 指定為SHA-512,加密後的字串與shadow中的密碼比對是不一樣的。
我的Linux版本為Ubuntu 10.04 Desktop
chpwd /usr/sbin/chpasswd nobody,user aecho /bin/echo nobody,user
lovex提到:
我在猜測是否super不支援"|command"的用法呢...??
super: command `su': Couldn't exec `/usr/bin': Permission denied
system(escapeshellcmd('super su -i echo test:1234|passwd'))
su: no tty present and no askpass program specified
//must install super and configuration /etc/super.tab auser /usr/sbin/useradd www-data $allowed_salt = "abcdefghiklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789"; $salt = substr($allowed_salt, rand(0,strlen($allowed_salt)-1), 1).substr($allowed_salt, rand(0,strlen($allowed_salt)-1), 1); $pass = crypt("56789",$salt); system("super auser -m -p$pass test");
system("super auser -m -p$pass test");
可以考慮不用互動的方式建立使用者密碼
super模組 + chpasswd指令
echo 帳號:密碼 | chpasswd
或
super模組 + passwd 指令
echo 密碼 | passwd --stdin 帳號
lovex提到:
我觀察過/etc/shadow這個檔案,密碼的前置字元為$6$,應是使用SHA-512的加密方式
連問題都這麼專業