簡體   English   中英

如何使用Shell腳本驗證用戶密碼?

[英]How to validate a user's password, with a shell script?

我正在為Ubuntu終端制作bash腳本。 我需要先驗證用戶身份,然后代碼才能繼續。 如何詢問並驗證其現有的登錄密碼?

您總是可以只使用id命令並執行以下操作:

user=$(id -u) # Set $user to user's user id

如果在腳本中執行此操作,則可以檢查$user是否為有效的用戶ID。 您可以在/etc/group文件中查看用戶名和ID。 當然,這不是在驗證用戶密碼。 而是,這僅檢查運行腳本的用戶的ID。

getent shadow | cut -d ":" -f 2

如果返回!! ,未設置密碼,否則,用戶具有密碼。

之后,我們可以執行以下操作:

#!/bin/bash

for user in $(getent shadow | cut -d ":" -f 1);
do
  has_pass=$(getent shadow | grep $user | cut -d ":" -f 2)
    if [ $has_pass = "!!" ]; then
      echo "User $user does not have password"
    else
      echo "User $user has password"
    fi
done

無論如何,至少在下一次,嘗試在問之前做點什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM