ディレクトリの所有者を変更する方法


14

編集:問題は、Appleがアクセス許可を使用してバックアップをマークし、ユーザーがそれらを変更できないようにすることです(おそらくセキュリティ機能)。使用するchmod -RN <dir>ことで、重要なデータを持つすべてのフォルダーからACLデータを削除しました。これにより、自分を所有者にして適切な権限を適用することができました。

元の質問
私は非常に大きなバックアップ(> 700GB)を持っていますが、今では間違った許可(クリーンインストール中にUIDが変更された、長い話)があり、それらを変更する必要があります。時間のかかるオプションは、各フォルダーを手動で移動してアクセス許可を変更することですが、これには時間がかかります。

chown自分をすべての重要なデータの所有者にしてchmod 700から、それらすべてのフォルダーrwxで自分だけにアクセス許可を与えるために使用したいと思います。

理想的な解決策はfind、正規表現に一致するフォルダー(現在のフォルダー)を再帰的に検索し.*/[DCV].*|Pictures|M[ou].*て、UIDを所有者にし、アクセス許可を700に設定する方法です。

私が把握できない重要なビット:
ただし、実行しようとするchown Me DirectoryNameとが取得されchown: DirectoryName: Operation not permittedます。

私が見つけたものはすべて、ディレクトリではなくファイルのパーミッションの変更に関連しています。たぶん私はこれを間違った方法で見ていますか?
私のUID rwx---他のすべての人にUIDを与える方法がないことを教えてくれます。

どうすればこれを達成できますか?Mac OS X 10.10.3を実行しています。

これはUNIX / Linuxフォーラム(およびMacを実行している)であることは知っていますが、この質問はシェル、、、および権限の使用に関するものでchownありchmod、ここに投稿されたソリューションはすべてのUNIXベースのOSに適用されます。投稿されたソリューションにより、古いバックアップがTime Machineに再表示されることが望ましいでしょう。

すぐに返信してくれたすべての人に感謝しますがchown、何らかの理由でディレクトリで動作しないようです。これが.sparsebundleネットワークドライブ上のディスクイメージであるという事実は関連していますか?外付けドライブと同じだと思いました。


どのようなネットワークドライブですか?NFSの場合、root_squash有効にしてエクスポートされる可能性が高いためchown、クライアントなどからルートのみの操作を実行することはできません。
トビースパイト

Apple Time Capsule内のHDDです。基本的に、WiFiベースステーション内のパスワードで保護されたディスクです。唯一の違いは、HDDがイーサネット経由でコンピューターに接続されていることです。実際に USBポートがありますが、使用したことがありません。
Arc676

それ以外の場合は、標準find . -user $other_uid -print0 | sudo xargs chown $USERが機能するはずです。
トビースパイト

どのネットワークファイルシステム? df -hT <dirname>教えてください。
トビースパイト

@TobySpeight df -hT <dir> a)ネットワークHDDのルートディレクトリb)ネットワークHDD内のディスクイメージc)ネットワークHDD上のフォルダーの出力を提供しません。おそらく、意図した動作はMacとLinuxで異なる方法で実装されていますか?
Arc676

回答:


23

誤解したかもしれません。しかし、例えばchmodとchownを再帰的に使用できます。

chown -R username:username /path/directory

許可700を再帰的に適用するには、次を使用できます。

chmod -r 700 /path/directory

もちろん、上記はLinux向けであるため、mac osxが同じかどうかはわかりません。

編集:いや、あなたが何かをチャウニングするためにルートになる必要があると言うのを忘れてしまいました。


1
Mac OSは同じ構文を使用します。rootとしてコマンドを実行するには、Mac上で最も簡単な方法は、それとの接頭辞であるsudoので、sudo chmod(あなたがAdminstratorアクセスのパスワードの入力を求められます)。
mjturner

2

ルートとして試してください

 find wherever -type d -name ... -exec chown Me {} \;

どこ

  • -type d dirのみに適用
  • -name ... あなたの正規表現
  • -exec chown Me {} \; find dirでchownを使用します。

chownするにはrootでなければなりません。

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