- Katılım
- 2 Mar 2015
- Konular
- 59,189
- Mesajlar
- 88,439
- Çözüm
- 109
- Online süresi
- 4mo 16d
- Reaksiyon Skoru
- 14,280
- Altın Konu
- 2,398
- TM Yaşı
- 11 Yıl 3 Ay 6 Gün
- Başarım Puanı
- 1,051
- MmoLira
- 695,092
- DevLira
- 234
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
İzin kavramı Unix/Linux dosya sisteminin merkezinde yer alır. İzinler bir dosyaya kimin erişebileceğini ve bir dosyaya nasıl erişilebileceğini belirler. Linux'taki dosya izinleri , Linux terminali içinde çalıştırılabilen chmod komutuyla yönetilir. PHP, dosya izinlerini programlı olarak işleyebileceğiniz chmod() işlevini sağlar.
PHP'nin chmod() fonksiyonu yalnızca Linux işletim sisteminde çalışırken etkilidir. Windows'ta çalışmaz çünkü Windows işletim sisteminin dosya izinlerini kontrol etme mekanizması farklıdır.
Bir dosyada etkinleştirilen izinleri görüntülemek için, " ls -l " komutunu kullanarak dosyaların listesini alın (uzun listeleme)
mvl@GNVBGL3:~$ ls -l
-rwxr-xr-x 1 mvl mvl 16376 May 5 21:52 a.out
-rw-r--r-- 1 mvl mvl 83 May 5 21:52 hello.cpp
-rwxr-xr-x 1 mvl mvl 43 Oct 11 14:50 hello.php
-rwxr-xr-x 1 mvl mvl 43 May 8 10:01 hello.py
drwxr-xr-x 5 mvl mvl 4096 Apr 20 21:52 myenv
İlk sütun her dosyanın izin bayraklarını içerir. Üçüncü ve dördüncü sütun her dosyanın sahibini ve grubunu, ardından boyutu, tarihi ve saati ve dosya adını gösterir.
İzin dizisi on karakterden oluşur, anlamları aşağıdaki gibi açıklanmıştır.
| Konum | Anlam |
|---|---|
| 1 | "d" bir dizin ise, "-" normal bir dosya ise |
| 2, 3, 4 | dosyanın kullanıcısı (sahibi) için okuma, yazma, yürütme izni |
| 5, 6, 7 | grup için okuma, yazma, yürütme izni |
| 8, 9, 10 | diğer (dünya) için okuma, yazma, yürütme izni |
İzin dizesindeki karakterlerin anlamları şunlardır:
| Değer | Anlam |
|---|---|
| - | Bayrak ayarlanmadı. |
| R | Dosya okunabilir. |
| w | Dosya yazılabilir. Dizinler için dosyalar oluşturulabilir veya kaldırılabilir. |
| X | Dosya yürütülebilir. Dizinler için dosyalar listelenebilir. |
Yukarıdaki listedeki ilk maddeyi göz önünde bulundurursanız:
-rwxr-xr-x 1 mvl mvl 16376 May 5 21:52 a.out
"a.out" dosyası "mvl" kullanıcısı ve "mvl" grubuna aittir. Sahibi için "okuma/yazma/yürütme" izinlerine ve grup ve diğerleri için "okuma/yürütme" izinlerine sahip normal bir dosyadır.
İzin bayraklarının ikili ve sekizli gösterimi aşağıdaki tabloyla anlaşılabilir:
| Sekizli Rakam | İkili Gösterim (rwx) | İzin |
|---|---|---|
| 0 | 000 | hiçbiri |
| 1 | 001 | sadece yürüt |
| 2 | 010 | sadece yaz |
| 3 | 011 | yaz ve çalıştır |
| 4 | 100 | sadece okunabilir |
| 5 | 101 | oku ve yürüt |
| 6 | 110 | oku ve yaz |
| 7 | 111 | okuma, yazma ve yürütme (tam izinler) |
chmod() Fonksiyonu
chmod() fonksiyonu belirtilen bir dosyanın izinlerini değiştirebilir. Başarılı olduğunda true, başarısız olduğunda false döndürür.chmod(string $filename, int $permissions): bool
chmod() fonksiyonu belirtilen dosyanın ( $filename ) modunu izinlerde verilen moda değiştirmeye çalışır.
İkinci parametre $permissions, dört sekizli basamağa sahip sekizli bir sayıdır. İlk basamak her zaman sıfırdır, ikinci basamak sahibi için izinleri, üçüncü basamak sahibinin kullanıcı grubunu ve dördüncü basamak da diğer herkesi belirtir. Her basamak her izin türü için değerlerin toplamıdır.
| 1 | Yürütme İzni |
| 2 | Yazma İzni |
| 4 | Okuma İzni |
$permissions parametrelerinin varsayılan değeri 0777'dir, bu da dizinin yürütme, yazma ve okuma izinlerinin etkinleştirilerek oluşturulduğu anlamına gelir.
Örnek
Aşağıdaki örneğe bir göz atın.
PHP:
<?php
// Read and write for owner, nothing for everybody else
chmod("/PhpProject/sample.txt", 0600);
// Read and write for owner, read for everybody else
chmod("/PhpProject/sample.txt", 0644);
// Everything for owner, read and execute for everybody else
chmod("/PhpProject/sample.txt", 0755);
// Everything for owner, read for owner's group
chmod("/PhpProject/sample.txt", 0740);
?>
chown() Fonksiyonu
chown() fonksiyonu filename dosyasının sahibini yeni bir kullanıcıya değiştirmeye çalışır. Sadece süper kullanıcının bir dosyanın sahibini değiştirebileceğini unutmayın.chown(string $filename, string|int $user): bool
Örnek
Aşağıdaki örneğe bir göz atın.
PHP:
<?php
// File name and username to use
$file_name= "index.php";
$path = "/PhpProject/backup: " . $file_name ;
$user_name = "root";
// Set the user
chown($path, $user_name);
// Check the result
$stat = stat($path);
print_r(posix_getpwuid(fileowner($path)));
?>
chgrp() Fonksiyonu
chgrp() fonksiyonu filename adlı dosyanın grubunu group olarak değiştirmeye çalışır.chgrp(string $filename, string|int $group): bool
Yalnızca bir süper kullanıcı bir dosyanın grubunu keyfi olarak değiştirebilir; diğer kullanıcılar bir dosyanın grubunu, o kullanıcının üyesi olduğu herhangi bir grupla değiştirebilir.
Örnek
Aşağıdaki örneğe bir göz atın.
PHP:
<?php
$filename = "/PhpProject/sample.txt";
$format = "%s's Group ID @ %s: %d\n";
printf($format, $filename, date('r'), filegroup($filename));
chgrp($filename, "admin");
clearstatcache(); // do not cache filegroup() results
printf($format, $filename, date('r'), filegroup($filename));
?>
Aşağıdaki çıktıyı üretecektir:
/PhpProject/sample.txt's Group ID @ Fri, 13 Oct 2023 07:42:21 +0200: 0
/PhpProject/sample.txt's Group ID @ Fri, 13 Oct 2023 07:42:21 +0200: 0

