現在ログインしているユーザーのパスワードファイルエントリを見つけるためにwhoコマンドを統合できますか?
答え1
はい、次のスクリプトを作成できます。
for who_user in $(who|cut -f1 -d' '|uniq)
do
getent passwd|grep ${who_user}
done
十分な権限がある場合は、シャドウファイルでパスワードを見つけることができます。
for who_user in $(who|cut -f1 -d' '|uniq)
do
cat /etc/passwd|grep ${who_user}
cat /etc/shadow|grep ${who_user}
done
@John WH Smithが述べたように、grepは必要ありません。
for who_user in $(who|cut -f1 -d' '|uniq)
do
getent passwd ${who_user}
done
ありがとう、ジョン
答え2
たぶん、次のようなものがあります。
who | awk '{print $1}' | grep -f - /etc/passwd
awk '{print $1}'
-f -
標準入力からgrepパターンを取得するように指示するオプションとともに、grepに渡されたユーザー名を出力します。これにより、/etc/passwd
ログインしたユーザーのエントリが印刷されます。
エイリアス@ホスト:〜$WHO エイリアス tty7 2015-03-10 13:02 roottty1 2015-03-10 18:19 エイリアスpts/0 2015-03-10 14:39 (:0) エイリアス@ホスト:〜$誰| awk '{print $1}' grep -f - /etc/passwd ルート:x:0:0:ルート:/ルート:/bin/bash aliaa:x:1000:1001:Alaa アリ,,,::/home/aliaa:/bin/bash