私のMac(10.6.7)で以下のようなことをしようとしています
sudo chown myusername:wheel ./entries
が、Unix/Macでは「操作が許可されていません」を返しています。犯人ファイルをls -lash
にすると、以下のようになります
8 -rwxrwxrwx 1 myusername staff 394B Apr 26 23:26 entries
sudo
とsudo su
を試してみましたが、何もうまくいきません。どうしたのでしょうか?
古いUbuntuボックスからコピーしたファイルをchmod
しようとしています。ほとんどのファイルは再帰的にchmod
‘edに成功しています
76 josef.van.niekerk 2011-05-04
はい、Mac はファイルの分野で Unix に多くの機能強化をしています。もうあまり使われていないリソースフォークのことは無視して、以下のようなものがあります
- 標準的な Unix のパーミッション
ugo
rwx
などを指定します。通常の Unix ツールが適用されます - ACLは、
ls -le
で表示可能、chmod [ -a | +a | =a ]
で変更可能 - ファイルフラグは
ls -lO
(ゼロではなく大文字の oh) で表示可能で、chflags
で変更可能です - 拡張属性で、
ls -l@
で表示可能(属性キーのみ)、xattr
で表示・変更可能です。(man xattr
で何も得られない場合は、xattr -h
でヘルプを利用してください) - OS X 10.11 “El Capitan” 以降、System Integrity Protection (SIP) は、
sudo
を使用してroot
として実行している場合でも、一部のファイルを通常のプロセスからの変更からさらに保護します。SIP で保護されたファイルはls -lO
でrestricted
フラグを持つものとしてリストアップされ、ls -l@
でcom.apple.rootless
属性を持つものとしてリストアップされます
Unix パーミッション、ACL、ファイルフラグ、または SIP のために、ファイルに対する操作を拒否することができます。ファイルを完全にロック解除するには
sudo chmod -N file # Remove ACLs from file
sudo chmod ugo+rw file # Give everyone read-write permission to file
sudo chflags nouchg file # Clear the user immutable flag from file
sudo chflags norestricted file # Remove the SIP protection from file
sudo xattr -d com.apple.rootless file # Remove SIP protection from file
システム整合性保護(SIP)が有効な場合、sudo chflags norestricted
とsudo xattr -d com.apple.rootless
は “Operation not permitted “エラーを返す。フラグや属性をクリアするには、macOS Recovery で起動し、ターミナルからコマンドを実行する必要があります (最初にディスクユーティリティを使って起動ドライブのロックを解除してマウントし、ファイルは /Volumes/Macintosh HD
以下にあることを覚えておく必要があるかもしれません)。しかし、将来のOSアップデートはrestricted
フラグとcom.apple.rootless
属性を削除したファイルに復元する可能性が高いことに注意してください
それはマルウェアや偶発的な損傷に対する保護の多くを削除するので、SIPを無効にすることは推奨されない。あなたがSIPを無効にする場合は、変更を行うことが完了したときに、それを再有効にします
ls -lO
が schg
フラグが設定されていることを示している場合、それを解除するにはシングルユーザモードにしなければならないことに注意してください。なぜそのファイルにそのフラグが設定されているのか、なぜそれをいじろうとしているのか、その結果はどうなるのか、という大きな疑問があるので、ここではそのことには触れません
94 Old Pro 2012-12-12
私も同じ問題を抱えていました。それは、問題のあるファイルがOSによって「ロックされている」とマークされていたことが判明しました。私はこの解決策を見つけ、それは数秒で問題を解決しました
Tigerでは
rm
コマンドが変更されたようで、rm -Rf
を高権限で使うと自動的にファイルのロックが解除されるようになったようです
Tiger以前のOS Xでは。find /Volumes/Transit -flags +uchg -print0 | xargs -0 chflags nouchg
Tiger以降のOS Xで。sudo rm -Rf foldername/
また、OS X 10.4以降でも、uchg
やuappnd
のようなファイルメタデータのフラグが存在する場合があり、ファイルのパーミッションや所有権の変更ができないようになっています。chflags
はフラグを削除することができます。ファイルの属性/メタデータのいくつかと、それが異なるコピーツールによってどのように扱われるかは、こちらにあります
18 bendalton 2011-06-08
Crashplan.appでも同じ問題がありました
ここに記載されているすべての解決策は私を助けることはできませんでしたが、これはトリックを行いました。http://forums.macrumors.com/showthread.php?t=1546163
システムとユーザーの不変フラグを変更する必要があります
これを実行すると、ファイル/フォルダ上でどのフラグがアクティブになっているかを確認できます
ls -lhdO MyFile
反応はこんな感じかもしれません
drwxrwxr-x 3 root admin schg,uchg 102B Apr 8 2013 MyFile
schg,uchgは不変フラグです。一つはシステム用、もう一つはユーザ用です。これらを削除するには、次のようにします
chflags noschg CrashPlan.app # this removes system immutable flag
chflags nouchg CrashPlan.app # this removes the user immutable flags
そうすると、少なくとも私の場合は、ファイルのロックが解除されているので、削除することができます
12 ruffy 2014-08-21
OS X 10.11 (El Capitan)では、新機能のルートレスが原因の場合もあります。説明は この回答 を参照してください
要するに、特定の重要なディレクトリについては、sudo
、chown
、chmod
のいずれを使っても、それらを修正する方法がありません。これは /usr
ディレクトリに影響します (/usr/local
を変更することはできますが)
ルートレスで保護されたディレクトリを変更するには、ルートレスを無効にする必要があります。そして、もちろん、変更を行った後は、重要なセキュリティ強化のため、再度有効にしてください
12 Nate 2015-09-30
悩んだ末にたどり着いたのがこちら
~/Desktop
に移動しましたsudo chown myusername:staff ./entries
- ファイルを元の場所に戻してもうまくいかなかったので(またしても操作が許可されていない)
sudo rm ./entries
sudo mv ~/Desktop/entries ./entries
5 josef.van.niekerk 2011-05-04
私も同じ問題を抱えていました。最後に、私はこのようなファインダーを使用しています
コンピュータ -> ディスク -> ユーザ -> ユーザ名 -> 右クリック -> 情報を取得
私はそれがロックされていることを発見しました、おそらく私は過去にそれをやって忘れていました。ロックされているチェックボックスのチェックを外してみたところ、問題は解決しました
このような問題に取り組むためには、ファインダーの「Get Info」を利用することをお勧めします
(OS X 10.8.3)
4 danza 2013-09-19
ファイルとその親フォルダの両方がロックされていないことを確認してください
Macメールの署名ファイルを削除しようとしたときに、同じような問題に直面しました。ファイルとその親フォルダのロックを解除するまで削除できませんでした
1 camslice 2015-03-23