1つのディレクトリの複数のユーザー権限を再帰的に修正する


1

特定のフォルダーのZIPアーカイブを作成します。これには、主に複数年にわたって収集されたさまざまなソースからコピーされた写真が含まれています。残念ながら、許可は台無しです。とls私はのようなものを見ています

----------@

そして

-r--r--r--@

最後の1つは、重複したユーザーおよびグループエントリがあるとしてFinderに表示されます。フォルダーを圧縮しようとすると、これらのアクセス許可を持つファイルでエラーが発生します。

フォルダー内のすべてのファイルをリセットする端末コマンドを探しています

-r--r--r--

またはディレクトリの

drwxr-xr-x

ありがとう。

回答:


3

私はすべてが台無しにされているものについて完全に明確ではありませんが、3つのコマンドで許可を正規化できるはずです:

sudo chown -R hhrutz:staff /path/to/folder

これにより、フォルダのコンテンツ全体の所有者がhhrutzに、グループがstaffに設定されます。これには管理者権限が必要であり、管理者パスワードを入力して確認する必要があることに注意してください。

chmod -R u=rwX,go=rX /path/to/folder

これにより、ファイルのアクセス許可が「-rw-r--r--」に設定され、ディレクトリが「drwxr-xr-x」に設定されます(「X」オプションは、必要に応じて実行許可を追加することを意味します)。

OK、今ではposixパーミッションはすべてクリーンアップされていますが、OS Xには2種類のファイルパーミッションがあります:posix( "-rw-r--r-@ 1 hhrutz 757317411"部分)とアクセス制御リスト( "0: user:hhrutz allow ... ")部分、およびACL部分はまだ混乱しています。クリーンアップするには、次を使用します。

chmod -R -N /path/to/folder

これにより、ファイルとフォルダーからすべてのACLが削除されます。


ハ、それはやった!また、chmodタイプのおかげで、X以前は見たこともありませんでした。
0__ 14年

0

ファイルのアクセス許可を変更する権限がまだあると仮定すると、-Rwithフラグを使用してchmodファイルのアクセス許可を再帰的に変更できます。たとえば、フォルダー内のすべてのアクセス許可をすべての\Users\Test\Desktop\PATHユーザーに対して読み取り、書き込み、実行するように変更するには、次を使用できます。

chmod -R 777 /Users/Test/Desktop/PATH

「777」は、すべてのユーザーの読み取り、書き込み、実行を意味します。パーミッションを他の何かに変更するには、https://en.wikipedia.org/wiki/File_system_permissions#Numeric_notationで 8進数/数値のファイルシステムパーミッション表記に関する情報を読んでください(慣れていない場合)。


わかりましたが、これによりユーザーとグループのエントリが重複します。廃止されたユーザーも同様に取り除きたいです。私も混乱し_unknownています。いくつかのファイルには追加のグループがあり、他のファイルにはありません。
0__ 14年

それでは、これらのファイルは誰のものですか?現在のユーザーアカウントが所有している場合は、コマンドを実行するだけで、ユーザーアカウントを削除できます。そうするとuserdel userName、古いユーザーはなくなります。それ以外の場合はchown、自分よりも前に自分に特権を与える必要がありますchmod
カレブ徐14年

ただし、userNameは2回同じです。IDが異なるだけで、1つは廃止されていると思います。すべてのユーザーをls一覧表示するにはどうすればよいですか?試しましたが、それ以外は何も表示されません。-la@
0__ 14年

すべてのユーザーのリストはファイルにあります/etc/passwd。各行はユーザーであり、ユーザーにパスワードが設定されているかどうか、ユーザーID、グループID、ユーザーID情報(コメント/人間が読めるテキスト)、ホームディレクトリ、デフォルトシェル(cyberciti.biz/faq/を参照)これを理解するためのより多くの助けのための理解-etcpasswd-file-format)。廃止されたユーザー(具体的にはそのUID)を探していて、削除しようとしています。
カレブ徐14年

0

かなり愚かな解決策はcp -r、フォルダを複製することです。これにより、すべての間違ったユーザーがクリアされます。その後、許可のないファイルを見つけてchmod a+rそれらを呼び出す必要があります。


編集:わかりました。したがって、以下はすべてのユーザーを示しています。

$ ls -le interplay_l8.jpg 
-rw-r--r--@ 1 hhrutz  757317411  283266  7 Feb  2011 interplay_l8.jpg
 0: user:hhrutz allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurity
 1: group:everyone allow read,readattr,readextattr,readsecurity
 2: user:hhrutz allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurity
 3: group:everyone allow read,readattr,readextattr,readsecurity

これは私がやった後ですchmod u+rwnフラグを使用すると、ユーザーが数値で表示されます。

$ ls -len interplay_l8.jpg 
-rw-r--r--@ 1 1622704362  757317411  283266  7 Feb  2011 interplay_l8.jpg
 0: 60B880EA-8F35-47F9-B64B-5384CBA15697 allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurity
 1: ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C allow read,readattr,readextattr,readsecurity
 2: 60B880EA-8F35-47F9-B64B-5384CBA15697 allow read,write,append,readattr,writeattr,readextattr,writeextattr,readsecurity
 3: ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C allow read,readattr,readextattr,readsecurity

したがって、まったく同じユーザーに対して複数のエントリがあります...

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