アクセス制御リスト
正解は、アクセス制御リスト(ACL)です。うん、反例を見つけることができますが、それらは実際には十分です(ユーザーが常にそれについて考えることを必要とする単なるグループ書き込み可能性とは異なります)。彼らが必要とするのは、名前付きグループのみでファイルを共有したい場合、システム管理者(root)がグループを定義することです(例えば、LDAPからグループを受け入れることで、rootは委任することを選択できますが、それは別の話です)。
参加ユーザーは022のumaskを持つ必要があります。ユーザーが日常的に読み取り不可能なファイルを作成する場合、このスキームは機能しません。しかし、もし彼らが制限的なumaskを持っているのなら、それはおそらくファイルを共有したくないからでしょう。
ACLを有効にする
UbuntuはデフォルトでACLを有効にしていないため、1回限りの管理要件があります。編集は/etc/fstab
お好みのエディタを使用して、あなたがファイル共有したいファイルシステムに対応するすべての行を変更:追加acl
オプションにします。(他の行を変更しないようにし、長い行を折り返すエディターを使用しないようにしてください。)次に、acl
オプションを追加した行の例を示します。
UUID=5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors=remount-ro,acl 0 1
オプションを初めて有効にするには、次のようなコマンドを(各ファイルシステムに対して)使用します。
sudo mount -o remount,acl /
acl
パッケージからACLツールをインストールします。
共有ディレクトリのセットアップ
グループでファイルを共有するにはmygroup
:
setfacl -m group:mygroup:rwx /path/to/shared/root
setfacl -d -m group:mygroup:rwx /path/to/shared/root
ユーザーがファイルを作成して共有ディレクトリにコピーすると、ファイルは誰でも読み取り可能(umaskのため)で、グループ内の誰でもファイルを追加および削除できます(グループがグループ書き込み可能のため)。人々はお互いのファイルを編集することはできませんが、それは良いことです。そうしないと、すぐに編集の競合が発生します。
UNIXグループがない場合は、ユーザーを1つずつ追加できます。
setfacl -m user:bob:rwx /path/to/shared/root
setfacl -d -m user:bob:rwx /path/to/shared/root
バージョン管理
ユーザーがその場でファイルを編集できるようにする場合は、編集の競合を防ぐための何かも必要です。それがバージョン管理です。
gitリポジトリを共有するのにこれは必要ありません。gitosisのような解決策があることを知っているので、それらを使用してください。