bash 腳本中的 useradd -p 和 crypt 函數後 /etc/shadow 中出現奇怪的記錄

bash 腳本中的 useradd -p 和 crypt 函數後 /etc/shadow 中出現奇怪的記錄

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密碼 demouseradd加入到/etc/shadow文件的命令:

demo:paR7EXftedvjA:19081:0:99999:7:::

沒有關於idparam、 和 的信息salt,因為它應該在目前接受的表格中進行描述。看起來這只是一個哈希值,或者我不知道那是什麼paR7EXftedvjA。我嘗試在or之類的命令中使用demo鹽和demo密碼來恢復它,但結果並不相同。mkpasswdopenssl

相關內容