Bash Shell Betiği : Dosya Yetkilendirme

Cevapla
Kullanıcı avatarı
TRWE_2012
Mesaj Panosu Yöneticisi
Mesaj Panosu Yöneticisi
Mesajlar: 751
Kayıt: 30 Ağu 2022 21:59
Konum: DÜZCE/Akçakoca
Meslek: MADEN MÜHENDİSİ
Teşekkür etti: 186 kez
Teşekkür edildi: 610 kez
İletişim:

Bash Shell Betiği : Dosya Yetkilendirme

Mesaj gönderen TRWE_2012 »

Aşağıda, kullanıcıdan bir dosya veya dizinin tam yolunu alarak, bu dosya veya dizinin yazma, okuma ve çalıştırma yetkilerini değiştirmesine olanak tanıyan bir bash shell betiği bulunmaktadır. Bu betik, Zenity kullanarak kullanıcıdan gerekli bilgileri alır.

Klasik Yöntem :

Kod: Tümünü seç

#!/bin/bash

# Kullanıcıdan dosya veya dizin yolunu al
file_path=$(zenity --file-selection --title="Bir dosya veya dizin seçin")

# Eğer kullanıcı bir dosya/dizin seçmediyse çık
if [ -z "$file_path" ]; then
    zenity --error --text="Bir dosya veya dizin seçmediniz."
    exit 1
fi

# Kullanıcıdan okuma yetkisini sor
read_permission=$(zenity --question --text="Okuma yetkisini vermek istiyor musunuz?" --title="Okuma Yetkisi")
if [ $? -eq 0 ]; then
    chmod +r "$file_path"
    zenity --info --text="Okuma yetkisi verildi."
else
    zenity --info --text="Okuma yetkisi verilmedi."
fi

# Kullanıcıdan yazma yetkisini sor
write_permission=$(zenity --question --text="Yazma yetkisini vermek istiyor musunuz?" --title="Yazma Yetkisi")
if [ $? -eq 0 ]; then
    chmod +w "$file_path"
    zenity --info --text="Yazma yetkisi verildi."
else
    zenity --info --text="Yazma yetkisi verilmedi."
fi

# Kullanıcıdan çalıştırma yetkisini sor
execute_permission=$(zenity --question --text="Çalıştırma yetkisini vermek istiyor musunuz?" --title="Çalıştırma Yetkisi")
if [ $? -eq 0 ]; then
    chmod +x "$file_path"
    zenity --info --text="Çalıştırma yetkisi verildi."
else
    zenity --info --text="Çalıştırma yetkisi verilmedi."
fi
Betiği Kullanma

    Yukarıdaki kodu bir dosyaya yapıştırın, örneğin change_permissions.sh.
    Betiği çalıştırılabilir hale getirin:
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Kod: Tümünü seç

chmod +x change_permissions.sh
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Betiği çalıştırın: 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Kod: Tümünü seç

./change_permissions.sh
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Açıklama

    Betik, kullanıcıdan bir dosya veya dizin seçmesini ister.
    Seçilen dosya veya dizin için okuma, yazma ve çalıştırma yetkilerini değiştirmek için kullanıcıdan onay alır.
    Kullanıcı onay verirse, chmod komutu ile belirtilen yetkiler uygulanır.

Sayısal Yöntem :

Aşağıda, kullanıcıdan bir dosya veya dizinin tam yolunu alarak, bu dosya veya dizinin yazma, okuma ve çalıştırma yetkilerini sayılarla değiştirmesine olanak tanıyan bir bash shell betiği de bulunmaktadır. Bu betik, Zenity kullanarak kullanıcıdan gerekli bilgileri alır ve yetkileri sayılarla (okuma, yazma, çalıştırma) ayarlamak için chmod komutunu kullanır.Betik, kullanıcıdan bir dosya veya dizin seçmesini ister ve ardından izinlerin sayısal karşılıklarını açıklayan bir bilgi penceresi gösterir. Kullanıcı daha sonra izinleri sayılarla girebilir.

Bash Shell Betiği (Bilgilendirme Tablosuyla Birlikte)

Kod: Tümünü seç

#!/bin/bash

# Kullanıcıdan dosya veya dizin yolunu al
file_path=$(zenity --file-selection --title="Bir dosya veya dizin seçin")

# Eğer kullanıcı bir dosya/dizin seçmediyse çık
if [ -z "$file_path" ]; then
    zenity --error --text="Bir dosya veya dizin seçmediniz."
    exit 1
fi

# İzinlerin sayısal karşılıklarını gösteren bilgi penceresi
zenity --info --text="İzinlerin sayısal karşılıkları:\n\n\
- Okuma (r): 4\n\
- Yazma (w): 2\n\
- Çalıştırma (x): 1\n\n\
Örnek izinler:\n\
- 755: (rwxr-xr-x) - Sahip: okuma, yazma, çalıştırma; Grup: okuma, çalıştırma; Diğer: okuma, çalıştırma\n\
- 644: (rw-r--r--) - Sahip: okuma, yazma; Grup: okuma; Diğer: okuma\n\
- 777: (rwxrwxrwx) - Tüm izinler\n" --title="İzin Bilgisi"

# Kullanıcıdan izinleri al
permissions=$(zenity --entry --text="Lütfen izinleri sayılarla girin (örneğin: 755):" --title="İzinleri Girin")

# Girilen izinlerin geçerli olup olmadığını kontrol et
if ! [[ "$permissions" =~ ^[0-7]{3}$ ]]; then
    zenity --error --text="Geçersiz izin formatı. Lütfen 3 basamaklı bir sayı girin (örneğin: 755)."
    exit 1
fi

# İzinleri ayarla
chmod "$permissions" "$file_path"
zenity --info --text="İzinler başarıyla değiştirildi: $permissions"
ÖRNEK EKRAN GÖRÜNTÜSÜ (Sistem : GNU/Linux Mint 21.1 x64)

Sayısal Yöntem (Modern) :

[center]
Resim
Resim
Resim
Resim
[/center]


Güle güle kullanın...
Dosya ekleri
dizin_dosya_yetkilendirme_2.sh.7z
TRWE_2012 tarafından kodlandı.
Klasik Yöntem
Aralık 2025
(566 Byte) 4 kere indirildi
dizin_dosya_yetkilendirme.sh.7z
TRWE_2012 tarafından kodlandı.
Modern Sayısal Yöntem
Aralık 2025
(782 Byte) 4 kere indirildi
Verily We have granted thee a manifest Victory
Fetih Suresi - 1.Ayet


Resim
Resim

Etiketler:
Cevapla

“Bash Shell Betiklerimiz” sayfasına dön