0

パスワードファイルを解析するためにgrepを使用しています。

私が使うとき

grep -w "avahi" /etc/passwd

2 つの応答が返されましたが、一意の応答
avahiavahi-autoipd
返す方法が見つかりませんでした。

このコマンドは、名前 ( avahi) が実際には変数である、より大きなスクリプトの一部です。

これは、名前がrpcandの場合に機能しrpcuserます。だから私はそれが名前のダッシュ()と関係があると推測しています-.

実際のコード:

#!/bin/ksh
getent shadow |cut -d: -f1-2|grep ':!!'| cut -d: -f1 > /tmp/pasck
while read line
do 
   NOLOGIN=`grep -w $line /etc/passwd | cut -d -f7|cut -d/ -f3`
if [[ $NOLOGIN != "nologin: && $NOLOGIN != "false" ]] ; then
echo "$line" "$NOLOGIN" >> /tmp/pasck.list
fi
done <?tmp/pasck

スクリプトはシャドウ ファイルを調べて、パスワードを持たないユーザーを探します。次に、結果を passwd ファイルと比較して、それらのアカウントのどれが/bin/falseまたはに設定されているかを見つけます/sbin/nologin。残りは、パスワードが設定されていないがシステムで許可されている実際のユーザーです。

4

2 に答える 2

0

を使用して、コロンで区切られた最初のフィールドを明示的にテストできます。

awk -F: '$1 = "avahi"' /etc/passwd

于 2017-01-09T18:37:08.820 に答える