@ Extended Attributes

Mac のファイルをコマンドラインからみると権限のところに@が付いているのがある。これはファイルの拡張属性でMacだけの話しだ。付いていても無くてもほとんど関係ない。アプリでそのファイルを読むときにあったらいい位の意味らしい。強いて取り除く意味があるのか、よくわからない。この @ のついたファイルをWindowsに渡しても、読めないから捨てちゃうことになる。

@ の付いたファイルをWindowsに持っていいくと、例えば test.txt というファイルには .test.txt というもう一つのファイルも表示される。.test.txtはappleの属性でWindowsにとって意味がないものだ。このWindowsにコピーされたtest.txtにはAppleの属性がついていないから、Windowsにコピーされたファイルを再びMacにもってくるとappleの属性はなくなっているから、ターミナルで見ると @ はなくなっている。

例えば
-rw-r–r–@ 1 hogehoge staff 4 4 8 12:48 test.txt
のようなファイルだ。このファイルはエディタで作成したファイルだ。このファイルにくっついている属性を見るには ls -l@ [ファイル名] である。
$ ls -l@ test.txt

-rw-r–r–@ 1 hogehoge staff 4 4 8 12:48 test.txt
com.apple.FinderInfo 32
com.apple.ResourceFork 1338
com.apple.TextEncoding 15
com.apple.macl 72

4つの属性がくっついている。これらを除くには
xattr -d [削除したい属性] [ファイル名]
である

$ xattr -d com.apple.FinderInfo test.txt
$ xattr -d com.apple.ResourceFork test.txt
$ xattr -d com.apple.TextEncoding test.txt
$ xattr -d com.apple.macl test.txt

しかし xattr -d com.apple.macl が有効ではなく
-rw-r–r–@ 1 hogehoge staff 4 4 8 12:48 test.txt
となって@が残ったままだ。com.apple.maclという属性はどうやら取り除けないらしいが、何のためかAppleのdocument にもない?らしい。Catalina から?他の属性だけだったら取り除くことができて @ はなくなる。

directory 指定の場合は
xattr -cr
らしい。

Rootless

OS X 10.11 El Capitan 以降、/System、 /bin、 /usr、 /sbin の権限はカスタムアクセス権となっていて、root でも書き換えることができない。通称 Rootless、正しくはセキュリティ整合性保護機能(SIP: System Integrity Protection)という。上記のdirectoryにあるファイルの 情報を見る を実施するとカスタムアクセス権が設定されていると表示される。
ターミナルを立ち上げ csrutil status と入力する。

System Integrity Protection status: enabled.

と返ってくる。root でも変更できないようになっている。

これを解消する。
再起動し。起動時に command+R を押して、MacOS復元デイスクから起動する。
メニューのユーティリティのターミナルを起動する
csrutil disable
と入力する。(有効化するためには csrutil enable )

Successfully disabled System Integrity Protection. Plsase restart the machine for the changes to take effect.

本来のOSのHDDから起動する。
ターミナルを立ち上げ csrutil status と入力する

System Integrity Protection status: disabled.

と返ってきたらおしまい。root で上記directoryのファイルを操作できる。

それでもできないと言ってきたら
sh-3.2# mount -uw /
sh-3.2# killall Finder
を実行してFinderをリセットすればいい。

なんか、わすれちゃっていて、sudo でもできないなんて返ってくると、どうして?となっちゃうんだよね。もう脳の記憶の引き出しが溢れているからしょうがない。あとは誰かのような認知症まっしぐらだな。