Birden fazla kullanıcı tarafından paylaşılan bir proje olduğu belirli bir dizin var. Bu kullanıcılar bu dizine erişmek ve dosyaları değiştirmek / oluşturmak için SSH kullanır.
Bu proje yalnızca belirli bir kullanıcı grubuna yazılabilir olmalıdır: hadi buna "grubum" diyelim. Bir SSH oturumu sırasında, geçerli kullanıcı tarafından oluşturulan tüm dosyaların / dizinlerin varsayılan olarak "grubum" grubuna ait olması ve grup tarafından yazılabilir izinlere sahip olması gerekir.
İzin sorununu şu şekilde çözebilirim umask
:
$ cd project
$ umask 002
$ touch test.txt
"Test.txt" dosyası artık grup tarafından yazılabilir, ancak yine de varsayılan grubuma ("mislav", kullanıcı adımla aynı) ait ve "grubum" a ait değil. chgrp
İstenen grubu ayarlamak için özyinelemeli olabilir , ancak umask bir oturum sırasında varsayılan izinleri değiştirdiği gibi bazı grup örtük olarak ayarlamak için bir yol olduğunu bilmek istedim.
Bu özel dizin çalışan bir kopyası ile paylaşılan bir git repo olduğunu ve istediğim git checkout
ve git reset
işlemleri çalışma kopyasında oluşturulan yeni dosyalar için doğru maske ve grup ayarlayın. İşletim sistemi Ubuntu Linux.
Güncelleme: Bir meslektaşım POSIX ACL'nin getfacl / setfacl'sine bakmam gerektiğini söylüyor ancak umask 002
şu anki oturumda bir araya getirilen çözüm benim için yeterince iyi ve çok daha basit.