
Ubuntu 20.04 LTS。
有一個簡單的bash腳本到新增用戶透過互動模式下的命令列:
#!/bin/bash
# Script to add a user to Linux system
if [ "$(id -u)" -eq 0 ]; then
read -p "Enter username : " username
read -s -p "Enter password : " password
egrep "^$username" /etc/passwd >/dev/null
if [ $? -eq 0 ]; then
echo "$username exists!"
exit 1
else
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
useradd -m -p $pass $username
[ $? -eq 0 ] && echo "User has been added to system!" || echo "Failed to add a user!"
fi
else
echo "Only root may add a user to the system"
exit 2
fi
裡面的結果/etc/shadow
透過該腳本添加用戶後文件看起來非常奇怪。例如對於使用者名稱 demo
和密碼 demo
,useradd
加入到/etc/shadow
文件的命令:
demo:paR7EXftedvjA:19081:0:99999:7:::
沒有關於id
、param
、 和 的信息salt
,因為它應該在目前接受的表格中進行描述。看起來這只是一個哈希值,或者我不知道那是什麼paR7EXftedvjA
。我嘗試在or之類的命令中使用demo
鹽和demo
密碼來恢復它,但結果並不相同。mkpasswd
openssl