yerel bir hesabın şifrenin etkin olup olmadığını nasıl kontrol edebilirim?


1

Yerel bir hesabın şifrenin etkin olup olmadığını veya yalnızca boş bir şifre olup olmadığını kontrol eden bir komut dosyası yapmam gerekiyor. Sanırım aynı şey onlar evet?

etrafında googled ve parola -S kullanıcı komutunu denedim, ancak tüm aldığım bir hatadır. yerel terminal konsolunda çalıştırmak zorunda mıyım, yoksa onu bir komut dosyasına dönüştürmenin bir yolu var mı?

im super new im im hala genel olarak senaryo kavramı ile karıştı. Temel olarak komut dosyasını bir metin editöründen birine yazmalı, .sh dosyası olarak kaydetmeliyim, RWX'e izin vereyim, sonra terminalden çalıştırın, doğru mu?


1
Her iki durumda da hesabın bir şifresi vardır, boş bir şifre Windows için bir şifredir.
Ramhound,

Denemenin tam hatası nedir password -S user? Şunu musunuz passwd -S user? Lütfen bir yayında birden fazla soru sormaktan kaçının. Bu soru şifreler hakkında olsun. Genel olarak komut dosyası oluşturma konusunda yardıma ihtiyacınız olursa, ayrı bir soru sormalısınız.
Kamil Maciorowski

Yanıtlar:


1

Bir kullanıcının şifresi /etc/shadowdosyada saklanır . Dosya- :ayrılmış alanlardan oluşmaktadır . İkinci alan şifredir. Bir şifre ayarlanmışsa, bir karma gösterilir. Bir hesap devre dışı bırakılırsa veya şifresi yoksa, ya bir !ya da hiçbir şey göstermez .

Böyle bir betiği kullanabilirsiniz:

#!/bin/bash

input="$1"
passwordField=$(cat /etc/shadow | grep "$1" | cut -d ':' -f 2)

echo "Password field contains: ${passwordField}"

if [[ "${passwordField}x" == "x" || "$passwordField" == '!' ]]; then
  echo "Password is not set or account is disabled"
else
  echo "Password is set"
fi

Bu metni bir dosyada saklayın. Dosyayı chmod +x filenameçalıştırılabilir duruma getirin ve dosyayı kullanıcı olarak argüman olarak root kullanıcısı olarak çalıştırın:

root@frisbee:~# ./checkpw.sh test1
Password field contains: $6$WLmjys98$70x/mzE/syE4CGgK9GvcN0Bz1b9.6Ka.JsZQ7W9OFwvTx17MKtQegQKVweaRl5M3X.Wm/EDdBOEEfdalDR225/
Password is set
root@frisbee:~# passwd -d test1
passwd: password expiry information changed.
root@frisbee:~# ./checkpw.sh test1
Password field contains: 
Password is not set or account is disabled

Bu basit betiğin, sağlanan argüman iki veya daha fazla kullanıcı adının bir parçası olması durumunda, güvenilir bir çıktının olmayacağı sınırlaması vardır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.