Bu makalede, bir Linux sisteminde izinlerin bir dosya veya dizinden diğerine nasıl kopyalanacağını inceleyeceğiz. Bu, zaman kazandırabilecek ve dosya sisteminizde tutarlılık sağlayabilecek yaygın bir görevdir. Birkaç basit komut kullanarak, istediğiniz erişim kontrolü ayarlarını koruyarak herhangi bir dosyanın veya dizinin izinlerini diğerine kolayca kopyalayabilirsiniz.
İzinleri Çoğaltmaya İlişkin Örnek Yöntemler
Linux’ta her dosya ve dizin, dosyayı kimin okuyabileceğini, yazabileceğini veya yürütebileceğini belirleyen bir dizi izinlere sahiptir. Bu izinler dosya sisteminin güvenliğini ve bütünlüğünü korumak için çok önemlidir. Bazen tutarlılığı sağlamak veya birden fazla dosya ve dizin arasında standart bir izin kümesi uygulamak için izinleri bir dosya veya dizinden diğerine kopyalamanız gerekebilir. Bu, ‘chmod’ ve ‘stat’ komutları kullanılarak verimli bir şekilde yapılabilir.
- Mevcut İzinleri Görüntüleme: İzinleri klonlamadan önce kaynak dosyanın veya dizinin geçerli izinlerini görüntülemek önemlidir. Bu ‘stat’ komutu kullanılarak yapılabilir.
$ stat source_file
Bu komut, dosya hakkında hem sembolik hem de sayısal biçimlerdeki izinler de dahil olmak üzere ayrıntılı bilgi sağlar. Örneğin çıktı şunları içerebilir:
File: source_file Size: 1234 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 12345678 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ user) Gid: ( 1000/ user)
‘Erişim’ satırı mevcut izinleri gösterir. Bu örnekte, dosyanın sahibi için okuma ve yazma izinleri, grup ve diğerleri için ise salt okunur izinleri vardır.
- Chmod Kullanarak İzinleri Klonlamak: Kaynak dosyanın izinlerini görüntüledikten sonra bu izinleri ‘chmod’ komutunu kullanarak başka bir dosyaya kopyalayabilirsiniz.
$ chmod --reference=source_file target_file
Bu komut, hedef_dosyanın izinlerini kaynak_dosyanın izinleriyle eşleşecek şekilde ayarlar. Örneğin, kaynak_dosyası 0644 izinlerine sahipse, hedef_dosya aynı izinlere sahip olacak şekilde güncellenecektir. Bu, özellikle birden fazla dosyanın aynı erişim ayarlarına sahip olmasını sağlamanız gerektiğinde kullanışlıdır.
- Bir Dizinin İzinlerini Klonlama: Bir dizinin izinlerini klonlama işlemi, bir dosyanınkine benzer. Bir kaynak dizinin izinlerini bir hedef dizine kopyalamak için chmod komutunu –reference seçeneğiyle birlikte kullanabilirsiniz.
$ chmod --reference=source_directory target_directory
Bu komut, hedef dizinin kaynak dizinle aynı izinlere sahip olmasını sağlar. Bu, dizin yapılarını aynı izinlerle çoğaltmanız gerektiğinde kullanışlıdır.
- Yinelemeli Olarak Klonlama İzinleri: Bir dizindeki tüm dosya ve alt dizinlerin izinlerini kopyalamanız gerekiyorsa, chmod komutuyla -R (özyinelemeli) seçeneğini kullanabilirsiniz.
$ chmod -R --reference=source_directory target_directory
Bu komut, kaynak_dizinin izinlerini hedef_dizine ve tüm içeriğine uygular. Bu, özellikle dizin ağaçlarının tamamını belirli izin ayarlarıyla çoğaltırken faydalıdır.
- Getfacl ve setfacl Kullanarak Klonlama İzinleri: Getfacl ve setfacl komutları, daha ayrıntılı ve esnek bir izin mekanizması sağlayan dosya erişim kontrol listelerini (ACL’ler) almak ve ayarlamak için kullanılır.
getfacl -p source_file | setfacl --set-file=- target_file
Burada getfacl -p kaynak_dosyası, kaynak_dosyasının ACL’lerini alır. Daha sonra çıktı, bu ACL’leri hedef_dosyaya uygulayan setfacl –set-file=- target_file’a aktarılır. Bu yöntem özellikle karmaşık izin kurulumları için kullanışlıdır.
- Klonlanmış İzinlerin Doğrulanması: İzinleri klonladıktan sonra hedef dosya veya dizinin doğru izinlere sahip olduğunu doğrulamak önemlidir. İzinleri kontrol etmek için stat komutunu kullanabilirsiniz.
$ stat target_file
veya
$ stat target_directory
Çıktıyı kaynak dosya veya dizinin çıktısıyla karşılaştırarak izinlerin başarıyla kopyalandığını doğrulayabilirsiniz.
Yazının orijinalini buradan okuyabilirsiniz.
Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.