web-dev-qa-db-ja.com

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

私の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を試しました。何も動作しません。どんなアイデアがありますか?

古いUbuntuボックスからコピーしたファイルをchmodにしようとしています。ほとんどのファイルは再帰的にchmod 'されています。これだけが動けなくなってしまい、その理由はわかりません。

64

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

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

はい、Macにはファイルの分野でUnixに対する多くの機能強化があります。全体を無視 resource fork もうあまり使用されていないものには、次のものがあります。

  • Unixの標準パーミッションugorwxなど。通常のUnixツールが適用されます。
  • ACL 's、ls -leで表示可能、chmod [ -a | +a | =a ]で変更可能。
  • ファイルフラグls -lO(ゼロではなく大文字)で表示可能で、chflagsで変更可能。
  • 拡張属性ls -l@(属性キーのみ)で表示可能、xattrで表示および変更可能。 (xattr -hで何も得られない場合は、man xattrを使用してください。)
  • OS X 10.11 "El Capitan"以降、システム整合性保護(SIP)は、一部のファイルを通常のプロセスからの変更からさらに保護しますSudoを使用してrootとして実行する場合でも。 SIPで保護されたファイルは、ls -lOrestrictedフラグを持つものとしてリストされ、および/または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 allowed」エラーを返します。フラグや属性をクリアするには、 macOS Recovery で起動し、ターミナルからコマンドを実行する必要があります(最初にディスクユーティリティを使用して起動ドライブのロックを解除してマウントし、ファイルを記憶する必要があります/Volumes/Macintosh HDまたは起動ドライブの名前の下)または SIPを完全に無効にする になり、再起動するとコマンドが機能します。ただし、今後のOS更新により、restrictedフラグとcom.Apple.rootless属性が削除されたファイルに復元される可能性があることに注意してください。

SIPを無効にすることは推奨されませんマルウェアに対する多くの保護を削除し、偶発的な損傷に加えて、ファイルごとに保護を簡単に削除できる場合は必要ありません。 SIPを無効にした場合は、変更が完了したら再度有効にします。

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

83
Old Pro

私は同じ問題を抱えていました。問題のファイルはOSによって "Locked"としてマークされています。私はこの解決策を見つけ、それは数秒で問題を解決しました:

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

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以降でも、uchguappndなどのファイルメタデータフラグが存在する可能性があります。これにより、ファイルのアクセス権や所有権の変更を防ぐことができます。 chflagsはフラグを削除することができます。ファイルの属性/メタデータと、それらがさまざまなコピーツールによってどのように処理されるかは、ここで です

18
bendalton

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

それから、少なくとも私にとっては、ファイルのロックが解除されているので削除できます。

12
ruffy

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

つまり、特定の重要なディレクトリでは、Sudochownchmodのいずれを使用しても、それらを変更することはできません。これは/usrディレクトリに影響します(ただし、/usr/localを変更することは許可されています)。

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

11
Nate

私のホームフォルダについても同じ問題がありました。最後に私はこのようにFinderを使いました。

移動 - >コンピュータ - >あなたのディスク - >ユーザー - >あなたのユーザー名 - >右クリック - >情報を見る

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

このような問題に対処するには、Finderの「情報を見る」を使用することをお勧めします。

(OS X 10.8.3)

4
danza

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

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

1
camslice