Çok kullanıcılı sistemlerde sorun, özellikle de birden fazla sisteminiz varsa. ;) İstediğinizi yapmanın gerçekten güzel bir yolu yok. Akla gelen yaklaşımlar
- harici sürücünüzü kullandığınız her makinede hesabınız için aynı UID'ye sahip olmak (aslında mümkün değildir, çünkü büyük olasılıkla tüm makineler kontrolünüz altında değildir)
- sahip / grup kavramından habersiz bir dosya sistemi kullanmak (FAT veya NTFS akla geliyor, ama… aaah, hayır)
En etkili yaklaşım ortak uygulamalara geri dönmektir. Çoğu (en azından) Linux sisteminde, genellikle ortak GID'leri olan bazı gruplar vardır . Örneğin , çoğu Linux dağıtımında users
GID olan örnek olacaktır 100
. İlgili kullanıcı hesabınızın bu grupta olmasını sağlayabilseydiniz,
- sürücünüzdeki tüm dosya ve dizinleri bu gruba ait yapın
- bir şekilde bu dosyalar ve dizinler üzerinde uygun grup izinlerine sahip olmayı başarabilir
- bir şekilde uygun grup sahipliği ile yeni dosyaların oluşturulmasını sağlar. izinleri.
Birinci ve ikinci noktaya ulaşmak kolaydır ( chown
, chmod
). Üçüncü nokta biraz daha aldatıcı.
"Grup sahipliği" bölümü nispeten kolaydır: Sürücüdeki tüm dizinlerde SGID bitini ayarlayabilirsiniz. Dizinlere uygulanan SGID biti, çekirdeğe BSDish biçiminde davranmasını söyler: BSD, dosyayı / dizini oluşturan işlemin (Linux'un yaptığı gibi) birincil grubuna ait olmayan belirli bir dizin grubu altında oluşturulan her dosya / dizini yapar, ancak üst dizinin sahibi tarafından.
İzin biti biraz zor. Yeni oluşturulan dosyaları / dizinleri izinler şunlardır (diğerleri arasında) etkisinde umask
, bit biraz maskesi söyleme değil sete açıkça belirtilmediği takdirde. umask
Örneğin ortak bir değer 022
, »grup« ve »diğerleri« için yazma bitlerinin genellikle ayarlanmaması gerektiği anlamına gelir. Grubunuz umask
için 002
yazma izinlerinin temizlenmesini istemediğinizi belirterek olarak değiştirebilirsiniz, olumsuz tarafı dizin tabanlı bu değeri ayarlayamamanızdır ve genellikle oluşturduğunuz her dosya için birincil grup kümeniz.
Bu, ACL'ler kullanılarak çözülebilir: Bir ACL'de , bu ACL setiyle bir dizin içinde oluşturulan tüm dosya ve dizinler için geçerli olan bir mask
ve bir default
izin kümesi ayarlayabilirsiniz. Yani probleminizin olası bir çözümü
- harici sürücünüzü kullanmak istediğiniz tüm sistemlerde ortak bir grubun üyesi olduğunuzdan emin olmak
- sürücünüzdeki tüm dosya ve dizinleri bu gruba ait yapın ve tüm dizinlerde SGID bitini ayarlayın
- tüm dizinlerin ACL'sini, bir maske ve çekirdeğe grup için ayarlanmış yazma izinleriyle her yeni dosya / dizini oluşturmasını söyleyen varsayılan izinleri içerecek şekilde değiştirin.
Daha fazla bilgi için setfacl(1)
ve bölümüne bakın acl(5)
.