Ziel: Überprüfen Sie, /etc/shadowob das Benutzerkennwort gesperrt ist, dh ob das erste Zeichen im zweiten Feld in / etc / shadow, das das Hash-Passwort des Benutzers enthält, ein Ausrufezeichen ('!') Ist.
Gewünschte Ausgabe: Eine Variable mit dem Namen $disabled'True' oder 'False'.
Benutzername ist in der $unameVariablen und ich mache so etwas:
disabled=`cat /etc/shadow |grep $uname |awk -F\: '{print$2}'`
# I now have the password and need one more pipe into the check for the character
# which is where I'm stuck. I would like to do like (in PHP syntax):
| VARIABLE=="!"?"True":"False"`
Dies ist ein Fragment eines Skripts, das von Cron mit Root-Berechtigungen ausgeführt wird, sodass auf alle gewünschten Informationen zugegriffen werden kann.
cat; grepkann eine Datei als Befehlszeilenargument verwenden.
grepauch; awkist perfekt in der Lage, eine Zeichenfolge in einer Datei zu finden.
!. Sie haben also technisch Recht, aber das scheint eher ein Tippfehler in der Frage zu sein als ein Fehler in der zugrunde liegenden Absicht.
!auf den Schattenkennwortmechanismus in Linux-Betriebssystemen.