Saya memiliki direktori tertentu di mana ada proyek yang dibagikan oleh banyak pengguna. Para pengguna ini menggunakan SSH untuk mendapatkan akses ke direktori ini dan memodifikasi / membuat file.
Proyek ini seharusnya hanya dapat ditulisi ke grup pengguna tertentu: sebut saja "mygroup". Selama sesi SSH, semua file / direktori yang dibuat oleh pengguna saat ini harus secara default dimiliki oleh grup "mygroup" dan memiliki izin grup-dapat ditulis.
Saya dapat memecahkan masalah izin dengan umask
:
$ cd project
$ umask 002
$ touch test.txt
File "test.txt" sekarang dapat ditulis grup, tetapi masih milik grup default saya ("mislav", sama dengan nama pengguna saya) dan bukan "mygroup". Saya dapat chgrp
secara rekursif untuk mengatur grup yang diinginkan, tetapi saya ingin tahu apakah ada cara untuk mengatur beberapa grup secara implisit seperti umask mengubah izin default selama sesi.
Direktori khusus ini adalah git repo bersama dengan copy yang berfungsi dan saya ingin git checkout
dan git reset
operasi untuk mengatur mask dan grup yang benar untuk file baru yang dibuat dalam copy pekerjaan. OSnya adalah Ubuntu Linux.
Pembaruan: seorang kolega menyarankan saya untuk melihat getfacl / setfacl dari POSIX ACL tetapi solusi di bawah ini yang dikombinasikan dengan umask 002
sesi saat ini cukup baik untuk saya dan jauh lebih sederhana.