Yeni dosyalar oluştururken kullanıcı için varsayılan grubu ayarla?


36

Sık sık kendime ait dosyaları SSH aracılığıyla oluşturduğum için buluyorum ve jm:jmmesela sahip olmaları gerekiyor .

Sonra Apache'nin erişmesine izin vermek için örneğin yapmam gerekiyor chown jm:www-data.

Dosyaları oluştururken, adımı altında grubu kullanmak yerine başka bir tane belirteceğimi belirleyebileceğime eminim?

Yoksa kullanıcıları / grupları yönetmenin daha iyi bir yolu var mı?

Yanıtlar:


73

Belirli bir dizindeki tüm yeni dosyaların belirli bir gruba ait olmasını istiyorsanız setgid, bunun üzerine bit uygulayın :

chgrp www-data /some/dir
chmod g+s /some/dir

Bu davranışı uygulamak istediğiniz dizin ağacınız varsa, şunları yapabilirsiniz find:

find /some/dir -type d -exec chgrp www-data {} +
find /some/dir -type d -exec chmod g+s {} +

(Eğer dizinler zaten ilgili gruba aitse, bu iki örneği de ilk komutu atlayabilirsiniz).


1
Güzel cevap! Lütfen sembollerin ne ... {} +anlama geldiğini açıklayabilir misiniz ?
— Alexander Lomia

3
findKomutun argümanları , man sayfasında ele alınmıştır. İlk çağrı için, chgrp www-dataargüman olarak birkaç sonuç ekleyerek komutu çalıştırır (komutu , elde ettiğiniz her sonuç için bir kez çağırmak yerine {} \;).
— James Henstridge

6
Neden kullanmaz chmod g+s /some/dir -R? Sadece test edildi ve işe yarıyor.
— Cragmonkey,

13
@Cragmonkey: setgid bitini normal dosyalarda da ayarlayacaktır. Bunlardan herhangi birinin çalıştırılabilir olması durumunda, bu, sistemdeki başka bir kullanıcının dosyaya sahip olan grubun ayrıcalıklarını kazanmasını sağlar.
— James Henstridge
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.