Burada sorumu cevapladıktan ve sonuç hakkında biraz araştırma yaptıktan sonra her şeyi çok iyi açıklayan bir makale buldum. Gelecekteki referanslar için bu makalenin bazı bölümlerini burada paylaşmak istiyorum.
İzinleri görüntüleme
Kullanmak için chmod
bir dosya veya dizinin izinlerini değiştirmek için, öncelikle erişimin geçerli mod ne olduğunu bilmek gerekir. Terminaldeki bir dizinin içeriğini cd
o dizine göre görüntüleyebilir ve sonra kullanabilirsiniz:
$ ls -l
-l
Kullanarak çünkü anahtarı önemlidir ls
onsuz sadece dizinde dosya veya klasörleri adlarını görüntüler.
Ana dizimde kullanma örneği aşağıda verilmiştir ls -l
:
total 128
drwxr-xr-x 2 peter users 4096 Jul 5 21:03 Desktop
drwxr-xr-x 6 peter users 4096 Jul 5 17:37 Documents
drwxr-xr-x 2 peter users 4096 Jul 5 13:45 Downloads
drwxr-xr-x 2 peter users 4096 Jun 24 03:36 Movies
drwxr-xr-x 2 peter users 4096 Jun 24 03:38 Music
drwxr-xr-x 2 peter users 4096 Jun 26 00:09 Pictures
-rw-r--r-- 1 peter users 354 Jul 6 17:15 chmodtest
Sütunlar ne anlama geliyor?
İlk sütun her dosyanın türüdür:
-
normal bir dosyayı belirtir.
d
bir dizini, yani diğer dosyaları veya klasörleri içeren bir klasörü belirtir.
p
adlandırılmış bir boruya (aka FIFO) işaret eder.
l
sembolik bir bağlantıyı gösterir.
Bundan sonraki harfler izinlerdir, bu ilk sütun en çok ilgileneceğimiz şeydir. İkincisi, bir dosyada kaç tane bağlantı bulunduğunu, güvenle yok sayabileceğimizi gösterir. Üçüncü sütunun iki değeri / adı vardır: Birincisi (benim örneğimde 'peter'), dosyanın sahibi olan kullanıcının adıdır. İkinci değer (örnekte 'kullanıcılar'), sahibinin ait olduğu gruptur (Gruplar hakkında daha fazla bilgi edinin).
Bir sonraki sütun, dosya veya dizinin bayt cinsinden büyüklüğü ve bundan sonraki bilgiler, dosyanın veya dizinin en son değiştirildiği tarih ve saat ve elbette dosya veya dizinin adıdır.
İzinlerin anlamı
İlk üç harf, birinciden sonra -
veya d
sahibinin sahip olduğu izinlerdir. Sonraki üç harf gruba uygulanan izinlerdir. Son üç harf, herkes için geçerli olan izinlerdir.
Her üç harften oluşan küme r
w
ve oluşur x
. r
daima birinci konumda, w
daima ikinci konumda ve x
daima üçüncü konumdadır. r
okuma izni, w
yazma izni ve x
yürütme iznidir. -
Bu harflerden birinin yerine kısa çizgi ( ) varsa , izin verilmez ve harf varsa o zaman verilir.
Klasörler
Klasörlerde mod bitleri şöyle yorumlanabilir:
r
(oku) verilen dizinin içindekiler tablosunu okuyabilme,
w
(write) verilen dizinin içindekiler tablosunu yazabilme (yeni dosyalar, klasörler oluşturma; mevcut dosyaları, klasörleri yeniden adlandırma, silme) ve eğer yalnızca çalıştırma biti ayarlanmışsa (yaz) anlamına gelir. Aksi takdirde, bu izin anlamsızdır.
x
(yürütme), verilen dizine cd komutuyla ve erişim dosyalarına, söz konusu dizindeki klasörlere girme yeteneğini ifade eder.
Chmod komutunu kullanarak izinleri değiştirme
chmod
Linux ve diğer Unix benzeri işletim sistemlerinde bir komuttur. Bir dosya veya dizinin izinlerini (veya erişim modunu) değiştirmenize olanak sağlar.
İzinleri iki farklı şekilde değiştirebilirsiniz: - Metin tabanlı chmod
- Sayı tabanlıchmod
Metin yöntemi
Bir dosyanın izinlerini veya erişim modlarını değiştirmek için, terminalde chmod komutunu kullanırız. Komutun genel yapısı aşağıdadır:
chmod who=permissions filename
Bir dizi harften herhangi birinin kim olduğu ve her biri kime izin vereceğinizi gösterir. Bunlar aşağıdaki gibidir:
u - The user that owns the file.
g - The group the file belongs to.
o - The other users i.e. everyone else.
a - all of the above - use this instead of having to type ugo.
Daha önce tarif edildiği gibi izinleri aynıdır ( r
, w
ve x
).
Chmod komutu, = yerine + veya - kullanarak varolan bir kümeden izinleri eklememize ve çıkarmamıza izin verir. Bu aslında izinleri yeniden yazmak yukarıdaki komutları, farklıdır (yani bir izni değiştirmeye r--
için rw-
hala eklemeleri gerektiğini r
yanı sıra w
sonra =
içinde chmod
komuta. Eğer dışarı kaçırdıysanız r
, bu uzak alacağını r
olarak izin = ile kullanılırlar. + ve - kullanarak - şu anki izinler grubunu ekleyerek veya alarak bunları engelleyin).
Sayı yöntemi
chmod
ayrıca sayıları kullanarak izinleri de ayarlayabilirsiniz.
Sayı kullanmak, üç sahibin, grubun ve diğerlerinin izinlerinin tümünü aynı anda düzenlemenizi sağlayan başka bir yöntemdir. Kodun bu temel yapısı şudur:
chmod xxx file/directory
Xxx, her bir basamağın 1 ila 7 arasında bir sayı olabileceği 3 basamaklı bir sayı olduğunda, ilk basamak sahibi izinlerine uygulanır, ikinci basamak grubun izinlerine uygulanır ve üçüncü basamak diğerlerinin izinlerine uygulanır.
Bu sayı notasyonunda, r, w ve x değerleri kendi sayı değerlerine sahiptir:
r=4
w=2
x=1
Üç basamaklı bir sayı bulmak için, sahip, grup ve kullanıcının hangi izinlere sahip olmasını istediğinizi düşünmeniz ve ardından değerlerini toplamalısınız. Örneğin, bir dizinin sahibine okuma-yazma ve yürütme izinlerini vermek istediğimi, gruplandırmayı ve diğer herkesin yalnızca okuma ve yürütme izinlerini almasını istediğimi söyleyin. Bunun gibi sayısal değerlerle karşılaşacaktım:
Owner: rwx = 4+2+1=7
Group: r-x = 4+0+1=5 (or just 4+1=5)
Other: r-x = 4+0+1=5 (or just 4+1=5)
Final number = 755
$ chmod 755 filename
Bu, aşağıdakileri kullanmanın eşdeğeridir:
chmod u=rwx filename
chmod go=rx filename
Çoğu klasör / dizin, sahibine okuma ve yazma ve yürütme izni verecek şekilde 755 olarak ayarlanmıştır, ancak herkese yazmayı reddeder ve dosyalar normalde 644'tür; Çalıştırılamayan dosyalar için x izinlerinin bulunmadığına dikkat edin - burada da aynı şey geçerli.