1. sayfa (Toplam 1 sayfa)

Bash Shell Betiği : Dosya Yetkilendirme

Gönderilme zamanı: 22 Oca 2025 19:02
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...