寻找一种更简单的方法来验证用户是请求更改本地帐户及其有效用户ID格式的密码。
有效的用户ID格式为 - ^[^a-zA-Z]*[a-zA-Z][^a-zA-Z]*t.*
第一个字母是大写或小写字母,后跟字母t后跟4个字母数字字符,总共6个字符。
目前我正在使用以下内容来评估if else - grep -Eow '\w{6}' /etc/passwd | grep ^[^a-zA-Z]*[a-zA-Z][^a-zA-Z]*t.* /etc/passwd
if grep -Eow '\w{6}' /etc/passwd | grep ^[^a-zA-Z]*[a-zA-Z][^a-zA-Z]*t.* /etc/passwd | grep -c "$cUname" $1 >/dev/null 2>&1; then
echo -e "$linuxPassword\n$newPassword\n$newPassword" | passwd
else
echo "Account is not a local account on this machine or not a valid account"
fi
有更好的方法吗?
答案 0 :(得分:0)
if [[ $cUname == [[:alpha:]]t[[:alnum:]][[:alnum:]][[:alnum:]][[:alnum:]] ]] &&
grep -q "^${cUname}:" /etc/passwd
then
echo "OK to change password"
else
echo "$cUname: invalid username or username not found"
fi