共有ディレクトリ内の新しいファイルのアクセス許可


31

この/Users/Sharedディレクトリを使用して、マシン上のすべてのユーザーがアクセスできるようにするメディア資産(画像、オーディオ、ビデオ)を保存する新しいiMac を入手しました。最初にすべてのファイルをコピーした後、目的のアクセス許可を設定してから、同じアクセス許可をすべてのディレクトリコンテンツに再帰的に適用しました。これは正常に機能しています。ただし、誰かが新しいファイルまたはディレクトリを作成するたびに同じアクセス許可が与えられるわけではなく、全員がアクセスできるようになる前にアクセス許可プロセス全体を繰り返す必要があります。

そのディレクトリ内に作成されたすべての新しいファイル/ディレクトリにアクセス許可を設定する方法はありますか?


拡張属性を使用すると、いくつかの非常に自由なアクセス許可を設定し、ディレクトリ内で伝播するように指示し、新しい作成でそれを継続することができますが、私の人生では指示が見つかりません。サーバー管理ツールを使用してOSXサーバーでのみ実行できますが、ここでは実行可能なオプションではないと思いますか?
ジェイソンサラズ

いや。iMacに付属のOSディスクにのみアクセスできます。
ダニエルスタンダー

1
ターミナルでの作業に満足している場合、これが探している答えかもしれません。
boehj

回答:


32

従来のPOSIXスタイルの権限ではこれを行えませんが、継承可能なアクセス制御エントリではできます。「スタッフ」グループ全体に/ Users / Shared / reallyshared内のすべてに対する読み取りおよび書き込みアクセスを許可するには、次を使用します。

sudo chmod -R +a "staff allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /Users/Shared/reallyshared

file_inherit,directory_inherit私が追加した理由だという(このアクセス制御エントリは自動的にこのフォルダ内に作成された新規のファイル&フォルダに追加されますが、それは自動的に既に存在のアイテムには適用されないという部分手段-Rにフラグをchmod現在内のすべてのものに適用しています-フォルダー)、それは他の場所で作成されたアイテムに適用されず、このフォルダーに移動されません(これを回避する方法はわかりません、申し訳ありません)。


共有ディレクトリに移動されたファイルに対しても、この機能を使用する方法を見つけたいと思っています。共有ディレクトリにファイルがあり、完全に完全に共有されていない場合はイライラします。
-radven

posixパーミッションで許可されていない場合、これでもフォルダーへの書き込みは許可されません。drwxr-xr-x+ 2 User staff 68 Dec 15 14:10 untitled folderつまり、Finderでこのフォルダーを作成します:最後の+は、上記のコマンドを使用して拡張ACLが適用されていることを意味しますが、このフォルダーにファイルを書き込もうとすると、Windowsはまだ許可を拒否します。chmod g+w untitled\ folder書き込みのみを許可します。恐らく、OSXの恐ろしい新しいSMB実装を回避するためにSambaをインストールしたからでしょう。
クリスドラゴン

@ChrisDragon:サンバはACLを適切に尊重していないようです。ここで/etc/smb.conf nt acl support = no[Global]セクションに追加する提案を見つけましたが、それが現在のバージョンのsambaにまだ関係があるかどうかはわかりません。
ゴードンデイヴィソン14

4

もう1つの方法は、ターミナル(別名シェルまたはコマンドプロンプト)を使用してファイルを作成/編集します(スーパーユーザーとして実行する必要があります。sudoを参照) 。
/etc/launchd-user.conf
行を追加します:
umask 000
保存して再起動します。新しいファイル/フォルダー(名前を付けて保存によって変更されたファイルを含む)は、誰でも読み取り/書き込みが可能になります。

これは、プログラムのデフォルトのファイル作成許可を変更することにより機能しますが、ACLアプローチは、特定のファイルおよびフォルダーにバインドされたアクセスルールに関して機能します。

この調整なしでは、ユーザー:読み取り/書き込み、グループおよびその他:読み取り専用を許可するファイルが作成されます。

複数のコンピューター間で共有している場合、共有を使用するすべてのコンピューターに対してこれを行う必要があります。

共有領域に既存のファイルとフォルダーがある場合は、以下を使用するすべてのユーザーがそれらをすべて読み取り/書き込み可能にする必要があります。
sudo chmod -R og+w <shared-folder-name>

このコマンドは、変更モードとして英語で読み取り、すべてのサブフォルダーとファイルを再帰的に読み取り、他の&グループ許可により、フォルダーで始まる書き込みアクセス権を追加します。

このアプローチは、少なくとも10.6で動作するフォーラムで言及されており、10.7でも動作します。

その他の要因は、依然としてコンテンツへのアクセスに影響します。たとえば、[共有]コントロールパネルで設定されたアクセス許可、ホームフォルダーのアクセス許可/ ACL、およびターミナルを使用している場合はシェルで有効なumask。

ルックアップのumaskおよびPOSIXファイルパーミッションをこれらのUnixの概念の詳細については。記事では、ディレクトリという語は、Unixの用語でフォルダと同義です。また、UIDおよびGIDという用語に遭遇します。これは、実行中のプログラム(プロセス)のPosix所有権を定義するユーザーIDおよびグループIDです。UIDとGIDは、異なるコンピューター間で特定のユーザー名に対して同じまたは異なる番号であることに注意してください。これらの番号は、通常ID 501から始まる特定のコンピューターでアカウントが作成される順序で名前に割り当てられます。ホームネットワークには、コンピューター間でこれらの割り当てを調整するメカニズムがありません。そのため、ネットワーク共有では、ユーザーIDからユーザー名へのバインディングはコンピューターがファイルにアクセスしているという観点から決定されるため、ファイルは異なるユーザーに属するように見える場合があります。そのため、共有では常に、すべての人がさまざまなレベルのファイルにアクセスできます。言い換えれば、Posixの「その他」の許可は、さまざまなコンピューターに割り当てられたユーザーIDに応じて非常に予測可能であるが明らかに不確実なアクセスの許可から、アクセスの無制限の制限です。これにより、明らかに不合理なエクスペリエンスのバリエーションが生じます。たとえば、一部のネットワークでは、各Macで作成されたユーザーアカウントが1つだけのセットアップでは、すべてのアカウントが同じUID(501、no Macごとに複数のユーザーアカウントを使用する別のネットワークでは、すぐに問題が発生します。したがって、一部のグループはこれに苦しむことはありませんが、他のグループは時間の経過とともに発生する問題、または自然に発生/消失する問題を見る場合があります。

Appleが、そうでなければ簡単にファイル共有機能を有効にすることができるように構成する際に、このような酷いユーザビリティの欠陥を残した理由は謎です。

外部ディスクでは、この問題は「このボリュームの許可を無視する」オプションで対処されています。Appleファイル共有にも同様の機能があるかもしれませんが、どこにありますか。

Sambaサービスの設定を所有している場合、これらの問題を処理するためのメカニズムは他にもありますが、Sambaはまったく使いやすいものではありません。


/etc/launchd-user.confは推奨されませんlaunchctl。参照してくださいsupport.apple.com/en-us/HT201684
ジェスのBowers
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.