Gönderen Konu: [Nasıl] Linux dosya izinleri  (Okunma sayısı 22769 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

« Yanıtla #1 : »
GNU/Linux üzerinde dosya izinlerini görmek için "ls" komutunu "-l" parametresi ile kullanabiliriz.

Kod: [Seç]
drwx------ 2 deniz deniz 4096 Tem 14 12:59 deneme
-rw-rw-r-- 1 deniz deniz    4 Tem 14 14:02 deniz
Sol tarafta izinleri/hakları göstermektedir.İlk sırada bulunan "d" işaret bunun bir dizin olduğunu gösteriyor. Devamında gelen "r" okuma, "w" yazma, "x" ise çalışma hakkını simgeliyor.
Hemen altından devam edelim, "-" bunun bir düz dosya olduğunu  belirtiyor. Devamında sahibi için okuma ve yazma hakkı, grubu için okuma ve yazma hakkı, diğerleri içinse sadece okuma hakkı verilmiş.

İkinci satırı anlatırken üç bölümde anlattım. Çünkü ilk üçlü sıra (r, w,x) sahibi, ikinci üçlü sıra grubu, sonra üçlü sıra ise diğerlerini temsil eder.

Yani -rwx-rx-r örneğini verirsek, ilk sırada bulunan "r, w ve x" sahibi için okur, yazar ve çalıştırır haklarını verirken ikinci sırada "r, x" gurubu için sadece okur ve çalıştırabilir ama yazamaz haklarını, diğerleri içinse "r" sadece okur ama yazıp, çalıştıramaz haklarını göstermektedir



İkinci sırada bulunan deniz dosyası için çalıştma hakkı yoktu, bu hakkı vermek için,
Kod: [Seç]
chmod +x deniz
komutunu vermemiz dosya ya çalıştırma hakkını verecektir.

Dosya izinlerini/haklarını sayısal olarak da tanımlayabiliriz ki sadece çalıştırma izni için değil, toplu yetki verme durumlarında daha çok kullanılır.
400   =   Sahibi okur
200   =   Sahibi yazar
100   =   Sahibi çalıştırır
040   =   Grubu okur
020   =   Grubu yazar
010   =   Grubu çalıştırır
004   =   Diğerleri okur
002   =   Diğerleri yazar
001   =   Diğerleri çalıştırır
yazdıklarımıza istinaden deniz dosya üzerinde deneme yapalım,


Bu tabloda gördüğümüz gibi deniz dosyasının yetkileri şu şekilde oldu,
Kod: [Seç]
-rwxr-x--- 1 deniz deniz 4 Tem 14 14:02 Ubuntu-tr/denizSahibinin okuması (400), yazması (200), çalıştırması (100), grubunun okuması (40), çalıştırması (10) = 750



Bütün yetkilerin toplamı 777 eder ki bu herkes için tüm yetkiler verilmiş demektir.
Windows tarafında özellikle dosya paylaşımında sorun yaşayan bazı kişiler sorunu çözmek için paylaşıma "Everyone" eski tabirle "Everyone Full Control" verirler ki bu aslında sakıncalıdır.
Bizim taraf içinde dosya çalıştırma yada benzer haklarsa sorun çıkmaması için dosyaya 777 hakkı verilir ki bu da tehlikelidir. Halbuki dosyanın sorunsuz çalışması için doğru hakların verilmesi yeterlidir, 777 bu durumda ihtiyaç değildir. Bilgisayarınızı ev bilgisayarı yada sunucu olması, için de fink atacak kişiler için çok önem teşkil etmeyecektir. Bu durumda dosya güvenliğini sağlamak ta önemlidir.

Örn;


Yukarıda ki örnekte, deniz dosyasına 777 hakkı verilmiştir.
Kod: [Seç]
drwx------ 2 deniz deniz 4096 Tem 14 12:59 deneme
-rwxrwxrwx 1 deniz deniz    4 Tem 14 14:02 deniz

Gördüğünüz gibi "deneme" dizininde sadece sahibi okuma, yazma ve çalıştırma hakkına sahipken "deniz" dosyası için herkes tüm yetkiye sahiptir, yazabilir, çalıştırabilir.
Konuya çok vakıf olmayan arkadaşlar için algılarının dışında bir güvenlik açığıdır, lütfen dosya haklarınıza kendi güvenliğiniz için dikkat edin.







« Son Düzenleme: 14 Temmuz 2012 - 18:43:14 Gönderen: arpia »

« Yanıtla #25 : »
Linux'ta dosya izinleri açısından bir faydası dokuncaksa http://kodputer.com/linux-dosya-izinleri/ burada çok detaylı bir açıklama mevcut. İnceleyebilirsiniz

« Yanıtla #26 : »
Konuyu hortlatıyorum affınıza sığınarak...
Bir dizinin altındaki tüm dosyaların ve onun tüm alt dizinlerinin altındaki tüm dosyaların yetkilerini aşağıdaki şekilde nasıl değiştirebilirim? Dizinleri değil, sadece dosyaları etkileyecek şekilde.
Kod: [Seç]
-rw-r--r--
Bu mümkün müdür acaba? Sayısal değeri 644'müş sanırım.
« Son Düzenleme: 27 Haziran 2017 - 19:54:01 Gönderen: spero »

« Yanıtla #27 : »
İlgili dizinde
Kod: [Seç]
chmod 644 * denermisin.

« Yanıtla #28 : »
@szgnblt
Örnek olarak oluşturduğum dizinde denedim. Hepsinin izinleri farklıydı. Çalıştırdığım dizindekiler için işe yaradı ama bulunduğum dizinin içindeki dizinlerin içindeki dosyalar için yaramadı.

« Yanıtla #29 : »
Ben Thunar dosya yöneticisi kullanıyorum, izinlerini değiştirmek istediğin dosya veya dizinlere sağ tık> özellikler> izinler bölümünden istediğini yapabilirsin...
GNU/Linux kullanmıyorum, onu yaşıyorum...

« Yanıtla #30 : »
Zamanında şöyle bir şeyler yazmıştım bu işlem için.

https://forum.ubuntu-tr.net/index.php?topic=54944.0

Çalışma mantığını anlamak için, öncelikle örnek bir dizin üzerinde denemeler yapabilirsin.

« Yanıtla #31 : »
Kod: [Seç]
Sudo chmod-R 644 * denermisin

« Yanıtla #32 : »
@illedelinux Öyle yapılıyor ancak tek tek yapmam çok ama çok uzun sürer. Dizinlerde çalıştırma olayı yok, dosyalarda var. Bunun için sıkıntı oluyor.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : [time]27 Haziran 2017 - 21:50:06[/time]
@mhmtkrktr İnceleyeceğim, umarım yapabilirim. Sizin bir öneri komutunuz var mı peki mesajımda belirttiğim sorun için?


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 27 Haziran 2017 - 21:50:44
@szgnblt Bu komut çalışıyor ancak dizinleri de etkiliyor maalesef.  :(

« Yanıtla #33 : »
Benim dediğimde tek tek yapmana gerek yok, dosyaların olduğu dizine yaparsan hepsi bir hamlede olur, saniyelik iş...
GNU/Linux kullanmıyorum, onu yaşıyorum...

« Yanıtla #34 : »
Kod: [Seç]
find * -type f -print0 | xargs -0 chmod 644

« Yanıtla #35 : »
@illedelinux Zaten öyle yaptım, alt dosya ve dizinlere uygula da dedim lakin bu şekilde yapınca çalıştırma izinlerini kaldıramıyorum. Dizinin izin ayarlarında çalıştırmayla alakalı bir durum yok.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 27 Haziran 2017 - 22:24:03
@szgnblt Sanırım bu işe yaradı, çok teşekkür ederim. Peki buradaki mantık nedir tam olarak?

« Yanıtla #36 : »
Tüm dosyalarda arama yapıyor. -type d yaparsak dizinlerde arama yapıyor. Xargs ile aradığımız argümanları istediğimiz komutla düzenleme yapıyoruz. Umarım anlatabilmişimdir. Sorunun çözüldüğünü sevindim.

« Yanıtla #37 : »
@szgnblt Anladım diyebilirim. Tekrardan teşekkür ediyorum. :)

« Yanıtla #38 : »
Merhaba bir ara ubuntu kullanırken cevabı bulmuştum ama şuan bulamıyorum. Sorunum "Windows kullanırken yedeklerimi aldığım D: diskimden Ubuntu 18.04 üzerinde herhangi bir dosya klasör silemiyorum" cevaplarınız için şimdiden teşekkürler.