Belge

Linux’ta Başka Bir Dosya veya Dizinden İzinler Nasıl Klonlanır

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

     

    Cloning file permissions from a source to target file using chmod command
    Chmod komutunu kullanarak dosya izinlerini bir kaynaktan hedef dosyaya klonlama

 

 

Yazının orijinalini buradan okuyabilirsiniz.