sudo chownが許可されていない操作で失敗する


8

ここで同様の質問を見つけましたが、それらの質問に対する回答で問題が解決しません。

私が行った場合:

sudo chown <username> main.m

操作が許可されていませんというエラーが表示されます。

以前のエラーの一般的な解決策は次のとおりです。

sudo chflags nouchg main.m

ロックフラグをクリアします。ただし、これを行った後も、ファイルをchownできません。私も試しました:

chflags noschg main.m

運のないシングルユーザーモード-許可されていない操作エラーが発生します。

誰かが何か考えがあれば、私は興味があります。


あなたがやろうとしている根本的なことは何ですか?おそらく、そのファイルがロックされている理由があります。
Tamara Wijsman、2011

したがって、コードを安全なヘルパーツールに配置せずにテストデータとして使用できます。デバッグには追加の作業が必要ですが、不可能ではありませんが、ファイルの属性を変更できるので安全なヘルパーツールが必要ないので、それは物事を少し簡単にするでしょう。これは作成された単なるテストデータであることを考えると、ロックが設定されている正当な理由はありません。
ericg 2011

1
ファイルはどのタイプのファイルシステムにありますか?chownNTFS / FATファイルシステムで使用しようとしていないのですか?
Zoredache

@ericgorr:そのほとんどは私の頭の上にあります。安全なヘルパーツールが正確に何であるかは知りません。しかし、あなたが言うように、それは単に作成されたテストデータです。コード内のテストファイルを適切に閉じましたか?
Tamara Wijsman、2011

@Tomヘルパーツールは、権限を維持しながらアプリケーションに高度な権限を与えるOS Xの方法です。たとえば、アプリが安全なファイルを変更したい場合、(承認された)ヘルパーツールにファイルを変更するように指示します。私はericgorrが彼/彼女のアプリケーションまたはそれに付随する厳密なデバッグを避けるために何かを昇格させたくないと思っていると思います。
過去の

回答:


8

Macファイルは、私が認識している4つの 3つの異なる方法で保護できます。

  1. 標準的なUnixの所有権と許可R /ユーザー/グループ/他の人のために/ Xワットのようなあなたが見ていることls -lとし、修正chown(1)してchmod(1)
  2. ファイルフラグが好きuchgschgあなたが見ていることls -lOとと修正chflags(1)
  3. で表示される古いFinderメタデータ「ロックビット」GetFileInfo filename。また、Finderメタデータの存在は確認できますが、その意味は確認できませんls -l@。で修正できますSetFile(1) これはuchgフラグにマップされています。
  4. に表示さls -leれ、ACLに関連する引数で修正されるアクセス制御リスト(ACL)chmod(1)

これらのフラグをすべて組み合わせて、ファイルの状態を確認してみましょうls

ls -lO@e main.m

#1と#2の扱い方はすでにご存じのようです。

ACL(#4)が表示された場合は、ACLに関連する引数を使用して修正できますchmod(1)

それでも困惑している場合は、ls上記で提案した結合コマンドの出力でAnswerを更新してください。そうすれば、何が起こっているのかを確認できます。


問題はACLにあるようです。sudoがそのようなロックを回避しないのは興味深いことです。さらに、chmod -R -a#0 *は、階層内のほとんどのファイルからACLを削除しましたが、一部のファイルからは削除できませんでした。chmodでsudoを使用しても効果がありませんでした。
ericg 2011
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.