特に複数のシステムがある場合は、マルチユーザーシステムの問題です。;)あなたがしたいことをする本当に良い方法はありません。頭に浮かぶアプローチは
- 外部ドライブを使用しているすべてのマシンのアカウントに同じUIDを持っている(ほとんどの場合、すべてのマシンが制御されているわけではないため、実際には実行できません)
- 所有者/グループconecptを認識しないファイルシステムを使用する(FATまたはNTFSが頭に浮かぶが…aaah、いいえ)
最も効果的なアプローチは、一般的な慣行に戻ることです。ほとんどの(少なくとも)Linuxシステムでは、通常共通のGID を持つグループがいくつかあります。たとえば、ほとんどのLinuxディストリビューションでusers
GID 100
があります。このグループにそれぞれのユーザーアカウントを管理できれば、
- このグループが所有するドライブ上のすべてのファイルとディレクトリを作成します
- なんとかしてそれらのファイルとディレクトリに適切なグループ許可を与えることができます
- どういうわけか、適切なグループ所有権の応答で作成された新しいファイルを管理することができます。許可。
最初と2番目のポイントは簡単に達成できます(chown
、chmod
)。3番目のポイントgetは少し複雑です。
「グループ所有権」の部分は比較的簡単です。ドライブ上のすべてのディレクトリにSGIDビットを設定できます。ディレクトリに適用されるSGIDビットは、カーネルにBSDのように動作するよう指示します。BSDは、特定のディレクトリの下に作成されるすべてのファイル/ディレクトリを、ファイル/ディレクトリを作成するプロセスのプライマリグループではなくグループ所有にします(Linuxのように)が、親ディレクトリの所有者によって。
許可ビットは少し難しいです。新しく作成されたファイル/ディレクトリのアクセス権がある(とりわけ)の影響を受けumask
、ビットビットマスクの占いではないセットに明示的に記述されていない場合。umask
たとえば022
、一般的な値はです。つまり、「グループ」と「その他」の書き込みビットは通常設定しないでください。あなたは、あなたを変えることができるumask
と002
あなたは書き込み権限がグループのためにクリアする必要はありませんが、欠点は、あなたが、この値は、ディレクトリベースの設定ができないということであり、あなたが通常のために書き込み権限を持っている必要はありません言って、作成するすべてのファイルのプライマリグループセット。
これは、ACLを使用して解決することができます:ACLでユーザーが設定できるmask
とdefault
、このACLを設定したディレクトリ内に作成されたすべてのファイルとディレクトリに適用されるアクセス許可セットを、。あなたの問題の1つの可能な解決策は
- 外部ドライブを使用するすべてのシステムの共通グループのメンバーであることを確認してください
- このグループが所有するドライブ上のすべてのファイルとディレクトリを作成し、すべてのディレクトリにSGIDビットを設定します
- すべてのディレクトリのACLを変更して、グループに設定された書き込み許可を持つすべての新しいファイル/ディレクトリを作成するようカーネルに指示するマスクとデフォルトの許可を含めます。
参照してくださいsetfacl(1)
、そしてacl(5)
より多くの詳細については。