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。我尝试在或等命令中使用demosalt 和demo密码将其恢复,但结果不一样。mkpasswdopenssl

相关内容