[apple] 터미널의 모든 사용자 계정을 어떻게 나열합니까?

터미널에 모든 로컬 사용자 계정을 나열하는 방법 (로그인 여부에 관계없이) 명령 users또는 who이 정보를 제공하지 않습니다. OS X 버전은 10.6.8입니다.

이 제안 된 명령을 보았습니다. dscacheutil -q group

그러나 도메인 사용자 그룹과 로컬이 아닌 계정 만 나열합니다.



답변

어때요?

dscacheutil -q user | grep -A 3 -B 2 -e uid:\ 5'[0-9][0-9]'


답변

이거 한번 해봐. 잃어버린 숨겨진 계정을 찾는 데 사용했습니다.

dscl . list /Users | grep -v '^_'


답변

10.6 이후의 사용자 계정은 OpenDirectory에서 관리합니다. OpenDirectory 사용자와 관련된 백엔드 파일은 다음과 같습니다.

/var/db/dslocal/nodes/Default/users

ls *이 디렉토리에서 실행 하면 시스템에 등록 된 모든 로컬 사용자가 열거됩니다. 실행 plutil -p <file>.plist하면 지정된 사용자 계정 (예 : 현재 홈 디렉토리 경로)의 일부 속성을 읽을 수 있습니다.

이것은 다소 문서화되어 있지 않기 때문에 다운 보트를 수락합니다. 그러나이 방법을 사용하여 실행 중이 아니며 사용자에게 오프라인 디스크 이미지 만있는 시스템을 검사 할 수 있습니다.


답변

dscacheutil 로컬 서비스 이상을 반환합니다 (예 : 디렉토리 서비스를 요청한 사용자도 표시).

나는 이것이 더 유용하다는 것을 알았다.

dscl . list /Users | grep -v "^_"

daemon, nobody및 의 좋아요도 반환합니다 root.


답변

JMTCW는 명령 행에 /etc/passwd상응 하는 명령을 다시 작성합니다 (동일한 순서는 아니지만).

dscacheutil -q user |
    paste -d " "  - - - - - - - - |
    sed 's/^name: //;s/ [^[:space:]]*: /:/g'

또는 공백으로 구분 된 출력을 선호하는 경우 (그러나 GECOS 필드 구문 분석은 조금 더 복잡합니다.

dscacheutil -q user |
    cut -d: -f2 |\
    paste -d " "  - - - - - - - -


답변

사용자 홈 디렉토리가 이동되지 않은 경우 ls /users수행됩니다. 제외하면 ‘공유’와 같은 디렉토리도 나열됩니다.


답변

다음을 입력 할 수도 있습니다.

who누가 로그온했는지, 어디에서 왔는지 알려줍니다. 실제로 같은 건물에 있거나 다른 특정 위치에있는 사람을 찾는 경우 유용합니다.

w누가 로그인했는지, 무엇을하고 있는지 알려줍니다. ‘유휴’부분이 특히 유용합니다. 이를 통해 현재 키보드로 타이핑 할 수 있는지 확인할 수 있습니다.