Ödeme Yöntemleri Abuse

CHGRP LINUX komutu

14.12.2021, 10:30

Linux kullanırken kullanıcılar genellikle bir dosyanın kime ait olduğunu nadiren düşünürler. Ancak iş bir sunucu çalıştırmaya geldiğinde durum değişir. Güvenliği artırmak için sunucunun kendi kullanıcısı olur. Sunucuların www-data gibi aynı grubu kullanması alışılmadık bir durum değildir. Şimdi bu fonksiyonun dosya ve dizinlerle nasıl çalıştığını görelim. Güvenli olmayan ayarlar kullanıldığında sorunlara neden olabileceğinden sembolik bağlantılara özellikle dikkat edeceğiz.

Ne anlama geliyor

Dosya izinleri standardı Linux'a Unix'ten gelmiştir. Yani her nesnenin bir kullanıcısı vardır, buna ek olarak grupdiğer kullanıcıların(diğer) haklarını tanımlar. İzinler üç öğeden oluşur: okuma, yazma, yürütme. Umask komutu izinleri değiştirmek için kullanılır, ancak chown komutları doğrudan sahip ve grubu değiştirmek için kullanılır. Geçerli izinleri görüntülemek için ls komutu kullanılabilir.

Sözdizimi ve seçenekler

chgrp komutunun genel görünümü:

$ chgrp [options] new_group file_name

chgrp komutu için ortak seçeneklerin listesi:

  1. -h - doğrudan sembolik bağlantıların kendileriyle çalışır;
  2. --dereference - sembolik bağlantıların kendileriyle değil dosyalarla çalışır. Varsayılan olarak kullanılır;
  3. -R - bir dizinin tüm içeriğiyle birlikte özyinelemeli olarak işlenmesi;
  4. -H - sembolik bağlantıyı takip eder ve dosya/dizin niteliklerini değiştirir. R parametresi ile birlikte kullanılır;
  5. -L - sembolik bağlantıyı takip eder ve özyinelemeli işleme devam eder. R parametresiyle birlikte kullanılır;
  6. -P - sembolik bir bağlantıyla karşılaşıldığında, yalnızca bu bağlantıyı işleyin. R parametresiyle birlikte kullanılır, varsayılan değerdir;
  7. --reference=file_name - örnek grubu kullanın;
  8. -c - çıktı yalnızca işlenirken değişir;
  9. -v - işlenen her nesne hakkında çıktı bilgisi.

Komut kullanımı

chgrp komutunu kullanmanın en basit örneği. Aşağıdaki, geçerli klasördeki dosya için www-data nesnesinin tamamını değiştirir:

$ sudo chgrp www-data file.txt

Ve bu da klasör klasörü için grubu www-data olarak değiştirir:

 $ sudo chgrp www-data folder

Komut, gruplarını değiştirerek çok tahmin edilebilir bir şekilde çalışır. Klasördeki nesneler değişmeden kalır. Sembolik bağlantılar ele alınırsa, nitelikleri değişmeden kalır, ancak nesne yeni bir grup alır. Bu davranış --dereference parametresinin kullanımına benzer.

Örneğin, sembolik bağlantılara uygulanan bu komutlar ekran görüntüsünde gösterildiği gibi çalışacaktır:

$ sudo chgrp www-data sym_file.txt

Sembolik bir bağlantının niteliklerini değiştiren -h parametresinin nasıl çalışacağına bir göz atalım:

$ sudo chgrp -h www-data sym_file

Grup yalnızca dizine değil, aynı zamanda içindeki tüm dosyalara da ayarlanmıştır. Davranışın değiştiğine dikkat edin, artık bir sembolik bağlantı işlenirken öznitelikler nesne için değil bağlantının kendisi için ayarlanır.

H ve -L parametreleri arasındaki farkı görmek için birkaç örneğe daha bakalım. Bunların -R ile birlikte kullanılması gerektiğini hatırlayın:

$ sudo chgrp -RH www-data folder

H kullanıldığında sembolik bağlantılar işlenirken davranış değişir, artık işlevler ayrı ayrı çalıştırılıyormuş gibi ele alınırlar. Referansların nitelikleri değişmez, nesnelerin kendi nitelikleri değişir ve bir dizine geçtiğinizde özyinelemeli işleme durur.

$ sudo chgrp -RL www-data folder

Tek bir işlevi yerine getirir - dosya ve dizin grubunu değiştirir.

Sembolik bağlantıları işlerken, sisteme zarar vermemek için son derece dikkatli olmalısınız.