İzinler bir haşeredir.
Temel olarak, bu geliştiricilerin hepsinin git deposundaki her şeye yazabildiğinden emin olmanız gerekir.
Bir grup geliştiriciye yazma yeteneği kazandırmak için üstün yöntem için Yeni Dalga Çözümü'ne geçin.
Standart Çözüm
Tüm geliştiricileri özel olarak oluşturulmuş bir gruba koyarsanız, ilke olarak şunları yapabilirsiniz:
chgrp -R <whatever group> gitrepo
chmod -R g+swX gitrepo
Daha sonra umask
kullanıcılar için olarak değiştirin 002
, böylece yeni dosyalar grupla yazılabilir izinlerle oluşturulabilir.
Bununla ilgili problemler lejyon; Eğer bir varsayan bir dağıtıma olmadığınızı umask
ait 022
(örneğin ortak sahip olarak users
varsayılan olarak herkesi kapsadığından grubu), bu başka güvenlik sorunlarını ortaya çıkarabilir. Er ya da geç, bir şey dikkatlice hazırlanmış izinler planınızı bertaraf edecek, siz erişene root
ve düzeltene kadar repoyu işlem dışı bırakacak (yani yukarıdaki komutları yeniden uygulayarak).
Yeni Dalga Çözümü
Daha az anlaşılmış olmasına rağmen ve biraz daha fazla OS / araç desteği gerektiren üstün bir çözüm POSIX genişletilmiş özniteliklerini kullanmaktır. Bu bölgeye oldukça yakın zamanda geldim, bu yüzden bilgim olabildiğince sıcak değil. Ancak, temel olarak, genişletilmiş bir ACL, 3 varsayılan alandan (kullanıcı / grup / diğer) daha fazlasına izinler ayarlama yeteneğidir.
Böylece bir kez daha, grubunuzu oluşturun, sonra çalıştırın:
setfacl -R -m g:<whatever group>:rwX gitrepo
find gitrepo -type d | xargs setfacl -R -m d:g:<whatever group>:rwX
Bu, grup üyeleri için genişletilmiş ACL'yi ayarlar; böylece grup üyeleri, orada bulunan dosyaları okuyabilir / yazabilir / erişebilir (ilk satır); daha sonra, mevcut tüm dizinlere, yeni dosyaların aynı ACL'ye (ikinci satır) uygulanmış olması gerektiğini de söyleyin.
Umarım bu yolda olur.