我想在系統上創建一些新的用戶提供了不同的命名模式:BASH:Linux系統上重命名用戶
- 老:
firstname+initial of the second name
(如:johnk
) - 新:
firstname.surname
(如:john.kennedy
)
我被新密碼更改爲新用戶。理想情況下,我想從文件中提取影子密碼,但我仍然在學習BASH腳本,並且我認爲它太高級了,所以現在我剛剛創建了一個包含舊用戶和相應影子密碼的列表。 我正在考慮更新新的用戶密碼:/usr/sbin/usermod $u -p "$HASH"
,但我不確定如何列出舊用戶並將其與新用戶匹配以執行此命令。
#!/usr/bin/env bash
OLD="
johnk="shadow_hash"
...
"
NEWUSERS="
john.kennedy
...
"
for u in $NEWUSERS; do
if [ -z "$(getent passwd $u)" ]; then
echo "User $u does NOT exist, creating..."
/usr/sbin/useradd $u
# /usr/sbin/usermod $u -p "$HASH"
else
echo "User $un DOES exist."
fi
done
舊用戶的密碼是MD5加密的,你不能(很容易地)得到它們的純文本版本。除非你可以破解MD5當然... – cdarke
我打算使用「-p」開關useradd或usermod:'-p,--password密碼\t使用加密的密碼爲新密碼' – HTF