OS Xでchownが「操作は許可されていません」と報告するのはなぜですか?


65

Mac(10.6.7)で次のことをしようとしています。

sudo chown myusername:wheel ./entries

しかし、Unix / Macは「Operation not allowed」を返しています。とき、私はls -lash犯人のファイルは、次のように見えます。

8 -rwxrwxrwx   1 myusername  staff   394B Apr 26 23:26 entries

私が試したsudosudo su。何も動作しません。何かアイデアはありますか?

chmod古いUbuntuボックスからコピーしたファイルを試しています。ほとんどのファイルはchmod再帰的に成功しています。これだけが立ち往生していて、その理由がわかりません。


1
試しましたsudo chgrp wheel ./entriesか?
リス

1
ファイルシステムチェックを実行します。ディスクユーティリティを開き、ボリュームを選択して、[ディスクの確認 ]をクリックし、必要に応じて[ ディスクの修復 ]をクリックします。
ダニエルベック

Finderでファイルがロックされていないことを確認してください(アイコンにロックバッジはありません)。変更するには、[ 情報を見る ]ダイアログを開き、[ ロック ]のチェックを外します。
ダニエルベック

「外部」ボリューム(つまり、システムボリュームではない)の場合、「このボリュームの所有権を無視する」オプションを削除する必要があります。(ボリューム自体の「情報を見る」ウィンドウの下部を参照してください)。
mivk

回答:


85

はい、Macにはファイルの分野でUnixに対する多くの機能強化があります。あまり使用されていないリソースフォーク全体を無視すると、次のようになります。

  • 標準的なUnixの権限 ugo rwxなど。通常のUnixツールが適用されます。
  • ACLで表示ls -le、変更可能chmod [ -a | +a | =a ]
  • ファイルフラグで表示できるls -lO(資本ああ、ゼロではない)とで変更可能chflags
  • 拡張属性、表示可能ls -l@(属性キーのみ)、表示可能および変更可能xattr。(何も得られないxattr -h場合man xattrはヘルプに使用してください。)
  • OS X 10.11「エル・キャピタン」で始まるシステムの整合性の保護、さらに(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また、「操作が許可されていません」というエラーが返されます。フラグや属性をクリアするには、macOS Recoveryで起動し、ターミナルからコマンドを実行する必要があります(最初にディスクユーティリティを使用して起動ドライブのロックを解除してマウントする/Volumes/Macintosh HD必要があります。ドライブに名前が付けられている)またはSIPを完全に無効にしてから再起動すると、コマンドが機能するはずです。ただし、今後のOSの更新により、削除したファイルのrestrictedフラグとcom.apple.rootless属性が復元される可能性があることに注意してください。

SIPを無効にすると、マルウェアや偶発的な損傷に対する多くの保護が削除れるためお勧めできません。また、ファイルごとに保護を簡単に削除できる場合は不要です。SIPを無効にした場合は、変更が完了したら再度有効にします。

フラグが設定されていることをls -lO示している場合は、schg設定を解除するためにシングルユーザーモードにする必要があることに注意してください。ファイルにそのフラグが設定されている理由と、なぜそれを混乱させようとしているのか、そして結果はどうなるのかについて、より大きな質問があるので、ここには触れません。


7
これに加えて、他のフラグにより​​、ファイルを変更できない場合があります。私の脚本ではsudo chflags -R nouchg,noschg,nouappnd,nosappnd,noopaque,dump .
djjeck

1
注:何かに「変更不可」フラグがある場合、[情報を見る]の[ロック]チェックボックスがチェックされ、グレー表示されます。「sudo chflags nouchg」で修正されています。
フーバー

1
私が行うことができなかった-Nし、ugo+rw一度に両方を(私が得たFailed to clear ACL on file ugo+rw: No such file or directory)が、それらを個別に実行するとうまく働きました。再帰が必要な場合は-R、最初の引数である必要があります。
owenfi 14年

3
システム整合性保護(ルートレス)がEl Capitan以降でこれを引き起こす可能性があることに注意してください。これを解決するには、リカバリモード(Cmd-R)で起動し、ターミナルを開いてを実行しcsrutil disable、再起動します(再度有効にするには、を使用しますcsrutil enable)。
アーウィンウェッセルズ

ありがとう...ファイルフラグについては知りませんでした。今、私はそれが言った理由を理解していますoverride rwxrwxrwx huttarl/staff uchg for green.html?
-LarsH

18

同じ問題がありました。問題のあるファイルは、OSによって「ロック」されていることがわかりました。私はこの解決策を見つけ、数秒で問題を解決しました:

http://explanatorygap.net/2005/07/10/unlocking-files-recursively-from-the-command-line/

ように思えるrmコマンドを使用すると、使用している場合、そのようなことをタイガーに変更されたrm -Rf特権で、それは自動的にファイルのロックを解除します。

OS XでTigerより前: find /Volumes/Transit -flags +uchg -print0 | xargs -0 chflags nouchg

OS XのTiger以降: sudo rm -Rf foldername/

また、OS X 10.4の後でも、uchgやなどのファイルメタデータフラグが存在する場合があります。これらのフラグuappndは、ファイルのアクセス許可や所有権の変更を防ぎます。 chflagsフラグを削除できます。ファイル属性/メタデータの一部と、それらが異なるコピーツールによってどのように処理されるかは、ここにあります


sudo rm -Rf foldername/OSXマウンテンライオンに完全に取り組んでいる
Aryo

5
@Aryo:rmディレクトリを削除します。削除せずにすべてのロックを解除する方法はありますか?Look uchgが設定されていない場合、(でchflags [no]uchg)期待どおりにオンとオフを切り替えることができますが、Finderのロックアイコンやの機能には影響しませんchown
オロム

12

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

schguchgはこれらの不変のフラグです。1つはシステム用で、もう1つはユーザー用です。それらを削除するには、次の手順を実行します。

chflags noschg CrashPlan.app # this removes system immutable flag
chflags nouchg CrashPlan.app # this removes the user immutable flags

その後、少なくとも私にとっては、ファイルのロックは解除され、削除できます!


素晴らしい、しかしchflags使用しなければならなかったsudoが、それは理にかなっています
フェリペ

CrashPlan.appにも同じ問題がありました(私が持っていたdrwxrwxr-x@ 3 _BGMXPCHelper admin schg 96B 9 Jan 2018 CrashPlan.app)、これは私がそれを削除できる唯一の解決策でした、ありがとう!
webeno

12

OS X 10.11(El Capitan)では、これは新しいRootless機能によっても発生する可能性があります。説明については、この回答を参照してください。

あなたが使用しているかどうか-要するに、特定の重要なディレクトリのために、そこにそれらを修正する方法はありませんsudochownchmod。これは/usrディレクトリに影響します(ただし、変更できます/usr/local)。

Rootlessで保護されたディレクトリを変更するには、Rootlessを無効にする必要があります。そしてもちろん、重要なセキュリティの強化であるため、変更を加えた後に再度有効にします。


1
ワオ。それは私を夢中にさせた。どういうわけか、/ usr / local / libにはないものを/ usr / libにコピーする必要がありました(理由は聞かないでください)。そして、それはトリックをしました。
qwerty_so

4
実際には、ルートレスを完全に無効にする必要はありません。回復モード(ルートレスを無効にするためにとにかく行う必要があります)で起動し、そこでターミナルから必要な変更を加えることができます。
古いプロ

6

多くの苦労の末、問題を解決するために私がしなければならなかったことは次のとおりです。

  • ファイルをに移動しました ~/Desktop
  • sudo chown myusername:staff ./entries
  • ファイルを元の場所に戻すことは機能しませんでした(再び操作は許可されません)。
  • sudo rm ./entries
  • sudo mv ~/Desktop/entries ./entries

4

ホームフォルダーについても同じ問題がありました。最後に、私はちょうどこのようなファインダーを使用しました:

移動->コンピュータ->ディスク->ユーザー->ユーザー名->右クリック->情報の取得

私はそれがロックされていることを発見した、おそらく私は過去にそれをやったと忘れていた。ロックされたチェックボックスのチェックを外し、問題を修正しました。

この種の問題に対処するために、ファインダーから「情報を見る」を使用することをお勧めします。

(OS X 10.8.3)


これにより.iso、不具合のあるVirtual Boxからロックを解除できました。
ナキロン14

1

ファイルとその親フォルダーの両方がロック解除されていることを確認してください

Mac Mailのメール署名ファイルを削除しようとしたときに、同様の問題に直面していました。ファイルとその親フォルダーのロックを解除するまで削除できませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.