현재 로그인한 사용자에 대한 비밀번호 파일 항목을 찾기 위해 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