맥에서는 /etc/shadow

맥에서는 /etc/shadow

저는 Mac에서 이 Linux 비밀번호 생성기 파일을 실행하려고 했습니다. OSX 아래의 디렉토리에서 작동하도록 스크립트를 수정했습니다.

#!/bin/sh
# build-passwd.sh - creates a password file which contains all OS users (except root)
PASSWDIR=$(cd "$(dirname "$0")"; pwd)/etc
PASSWFN=$PASSWDIR/passwd
if [ ! -d "$PASSWDIR" ]; then
mkdir $PASSWDIR
echo "$PASSWDIR created"
fi
sudo awk -F":" '
BEGIN {OFS=":"}
{if ($1 != "root" && $2 != "!" && $2 != "*") print $1,$2}
' /etc/shadow > $PASSWFN **<===here's my problem**
if [ $? = 0 ]; then
echo "Password file saved to $PASSWFN"
fi

하지만 Mac에는 "/etc/shadow"가 없기 때문에 작동하지 않았습니다.

그럼 다른 선택지가 있는지 아시나요? (또한 동일한 비밀번호를 사용하여 Linux 설치에서 파일 복사/붙여넣기를 시도했습니다.)

답변1

Lion부터 각 사용자는 섀도우 파일을 갖습니다. 이들 모두는 /var/db/dslocal/nodes/Default/users디렉토리에 저장되며 루트만 접근할 수 있습니다. 예를 들어:

$ ls -lah /var/db/dslocal/nodes/Default/users/
total 296
drwx------  77 root  wheel   2.6K Jul 27 20:30 .
drw-------  12 root  wheel   408B Jul 27 20:30 ..
-rw-------   1 root  wheel   4.0K Jul 27 20:30 Guest.plist
-rw-------   1 root  wheel   260B Jul 27 20:17 _amavisd.plist
-rw-------   1 root  wheel   254B Jul 27 20:17 _appleevents.plist
-rw-------   1 root  wheel   261B Jul 27 20:17 _appowner.plist
-rw-------   1 root  wheel   276B Jul 27 20:17 _appserver.plist

또한 이는 이진 속성 목록 파일입니다. 이를 보는 가장 쉬운 방법은 plist명령을 사용하는 것입니다. 예를 들어:

$ plutil -p /var/db/dslocal/nodes/Default/users/root.plist 
{
  "smb_sid" => [
    0 => "XXXX-XXXX"
  ]
  "uid" => [
    0 => "0"
  ]
  "passwd" => [
    0 => "XXYYXX"
  ]
}

답변2

Mac OS X에서는 표준 /etc/passwd 및 /etc/shadow를 사용하지 않습니다. 대신 데이터베이스를 사용합니다. NetInfo라는 GUI가 있었지만 이제는 dscl명령(디렉터리 서비스 명령줄)으로 대체되었습니다.

$ dscl
> read /Local/Default/Users/David Password
Password: ********

불행하게도 이 유틸리티를 사용할 수 있는 것은 여기까지입니다. 비밀번호 대신 별표를 인쇄합니다. 해시를 삭제하는 방법이 있을 수도 있지만 아직 찾지 못했습니다.

그녀의 기사 중 하나는DSCL 및 비밀번호 크래킹맥에서.

관련 정보