Son zamanlarda üç ve dört haneli sayısal dosya izinleri arasındaki farkın ne olduğunu merak ediyordum. Sayısal izinleri çalıştırarak stat --format "%a" $file_name
alıyorum. 0644 ile 644 arasındaki fark nedir?
Son zamanlarda üç ve dört haneli sayısal dosya izinleri arasındaki farkın ne olduğunu merak ediyordum. Sayısal izinleri çalıştırarak stat --format "%a" $file_name
alıyorum. 0644 ile 644 arasındaki fark nedir?
Yanıtlar:
Dört basamaklı bir izindeki ilk basamak, ayarlanan kullanıcı kimliği (4), ayar grubu kimliği (2) ve yapışkan (1) toplamıdır . Üç basamaklı izin, ilk basamak sıfıra ayarlıyken dört basamaklı izin gibidir. Böylece:
Set kullanıcı kimliğine sahip bir dosya yürütülürse, yürütmeyi yapan kullanıcı yerine dosyanın sahibi tarafından yürütülür. Böylece, örneğin, /bin/mount
genellikle root'a aittir ve izinler 4755'e sahiptir, burada 4, normal bir kullanıcı tarafından yürütülse bile, sahibinin (kök) ayrıcalıklarıyla çalışacağını gösterir.
Bir dizindeki grup kimliğini ayarlamak dosyaları paylaşmak için kullanışlıdır.
Yapışkan bit, /tmp
tüm kullanıcıların dosya oluşturabilmesi, ancak sahip olmayanların diğer kişilerin dosyalarını silmesini önleyecek şekilde dizinlerde kullanılır . Böylece, izinleri /tmp
tipik olarak 1777'dir, burada 1 yapışkan bitin ayarlandığını gösterir.
Gönderen man chmod
:
Sayısal bir mod, 4, 2 ve 1 değerlerine sahip bitlerin toplanmasıyla elde edilen bir ila dört sekizli basamaktan (0-7) oluşur. Atlanan basamakların başında sıfır olduğu varsayılır. İlk hane ayarlı kullanıcı kimliğini (4) ve ayarlı grup kimliğini (2) ve kısıtlı silme veya yapışkan (1) niteliklerini seçer. İkinci basamak, dosyanın sahibi olan kullanıcının izinlerini seçer: read (4), write (2) ve execute (1); üçüncüsü, dosya grubundaki diğer kullanıcılar için aynı değerlere sahip izinleri seçer; ve dördüncüsü, dosya grubunda olmayan ve aynı değerlere sahip diğer kullanıcılar için.