Linux

Mac 上的 /etc/shadow

  • April 16, 2019

我一直在嘗試在我的 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"
 ]
}

引用自:https://unix.stackexchange.com/questions/44517