web-dev-qa-db-ja.com

Mac OS X Snow Leopardでは、あるファイルの権限を別のファイルとどのように一致させることができますか?

ファイルのアクセス許可をOSX10.6の別のファイルのアクセス許可と正確に一致させる必要があります。

Linuxの他のいくつかの投稿で提案されているように、「getfacl」または「setfacl」が表示されません。また、chown/chmodにSnowLeopardの--referenceオプションがあるようには見えません。

Macで同等のものは何ですか?

3
leanne

わかりました。ACLのストレートコピーの場合、コマンドは1つも表示されません。ただし、これをスクリプトまたは関数に入れることができます。

ls -le source | sed -En '/^ [[:digit:]]+: / { s/^ [[:digit:]]+: //; p; }' | chmod -E dest

例えば。

function copyacl()
{
  ls -le "$1" \
    | sed -En '/^ [[:digit:]]+: / { s/^ [[:digit:]]+: //; p; }' \
    | chmod -E "$2"
}

$ copyacl sourcefile destfile

sedスクリプトは改善できると思いますが、それでうまくいくようです。

2
Useless

これは機能します:

chmod `stat -f %A srcFile` dstFile
1
Primoz Rome

ls -leを使用して、ファイルが関連付けられているACLを確認します。

chmodを使用して、ACLを変更または削除します。 chmodのmanページ の終わりに向かってたくさんの例があります。

Mac OSには、BSDから継承されたように見える、個別のファイルアクセスフラグのセットがあります。 ls -lO(ダッシュ)でそれらを表示し、 chflags で変更できます。

1
Kyle Jones

標準のUNIXパーミッションまたはACLについて質問されているかどうかわからない。 chmodの多くのバージョンには--reference別のファイルの権限を取得するオプション:

chmod --reference=~/backup/file ~/newfile

ただし、Macでchmodのオプションを確認する必要があります。

chmod --help
0
Arcege