Linux
Mac 上的 /etc/shadow
我一直在嘗試在我的 Mac 上執行這個 Linux passwd-generator 文件。我對腳本進行了足夠多的修改,使其能夠很好地與 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 安裝中複製/粘貼文件)
從 Lion 開始,每個使用者都有一個影子文件。所有這些都儲存在
/var/db/dslocal/nodes/Default/users
目錄中,並且只能由 root 訪問。例如:$ 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" ] }