"username"을 사용하지 않고 비밀번호 파일 항목을 찾는 방법

"username"을 사용하지 않고 비밀번호 파일 항목을 찾는 방법

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

관련 정보