12 bit · tek sonuç nesnesi · çevrimdışı

İzinleri ezberleme.
Bitleri gör.

Oktal Unix izinlerini, dokuz karakterli rwx gösterimini, özel bitleri ve umask sonucunu bit düzeyinde açıklamalı JSON ile dönüştüren çevrimdışı araç.

Numeric mode ↔ izin dizisi + umask; shell çalıştırmaz

Unix izinlerinde her kullanıcı üçlüsü okuma 4, yazma 2 ve çalıştırma 1 bitlerinin toplamıdır; umask yeni moddan izin eklemez, seçili bitleri temizler.

Girdiyi çöz

Sabit bir mod değerini dönüştürür; sistemde izin değiştirmez.

İşlem modu

3 veya 4 oktal hane: 755, 0755, 4755.

Yalnız görünüm önekidir; izin bitlerine ve oktale katılmaz.

Aynı bitlerden iki görünüm

Başlangıç örneği hesaplanıyor.

Bit işlemi

umask çıkarma değildir

POSIX, oluşturma maskesindeki seçili izin konumlarının sonuçta temizlendiğini ve oluşturma modunun maskenin tümleyeniyle AND işlemine girdiğini açıklar. Bu araç, verilen sözleşme gereği yalnız alt dokuz biti maskeler; tabandaki özel haneyi ayrı tutar.

(taban & 07000) | ((taban & 0777) & (~umask & 0777))

POSIX open() · AND ve tümleyen · POSIX umask

Adım adım

0755 nasıl rwxr-xr-x olur?

  1. İlk 0, setuid, setgid ve sticky özel bitlerinin kapalı olduğunu gösterir.
  2. Sahip hanesi 7 = 4 + 2 + 1 olduğundan rwx olur.
  3. Grup ve diğer haneleri 5 = 4 + 1 olduğundan ikisi de r-x olur.
  4. Üç izin alanı birleşince dokuz karakterli sonuç rwxr-xr-x olur.

POSIX chmod · oktal bit tablosu

Kontrol listesi

Sık yapılan altı hata

  • Oktali ondalık sanmak: Her hane 0–7 aralığındadır ve üç bağımsız biti özetler.
  • Dosya türünü izne katmak: Baştaki d, - veya l dokuz izin karakterinden ayrıdır.
  • Büyük S/T'yi kaçırmak: Özel bit açıktır; fakat o konumdaki çalıştırma/arama biti kapalıdır.
  • umask'i çıkarmak: İşlem aritmetik çıkarma değil, alt dokuz bitte AND + tümleyendir.
  • Dizindeki x'i dosyayla aynı açıklamak: Normal dosyada çalıştırma, dizinde arama/geçiş anlamındadır.
  • Özel haneyi yok saymak: Soldaki hane sırasıyla setuid=4, setgid=2 ve sticky=1 bitlerini toplar.

Kısa yanıtlar

Sık sorulanlar

0755 ne anlama gelir?

0 özel bit olmadığını; 7 sahibin okuma, yazma ve çalıştırma, iki 5 ise grup ve diğerlerinin okuma ve çalıştırma izinlerini gösterir. Sembolik karşılığı rwxr-xr-x'tir.

Büyük S ve T neyi gösterir?

S, setuid veya setgid biti açıkken ilgili çalıştırma biti kapalıdır. UnixIzin bit görünümünde T, sticky açıkken diğerlerinin çalıştırma/arama bitinin kapalı; küçük t ise açık olduğunu gösterir. POSIX ls, t/T'yi XSI kapsamında dizin için tanımlar.

umask izinlerden çıkarılır mı?

Hayır. umask aritmetik çıkarma değildir; taban modun alt dokuz izin bitindeki seçili bitleri temizler ve bu aracın sözleşmesinde özel bitleri değiştirmez.

Başındaki d, - veya l izin biti midir?

Hayır. Bu karakter dosya türünü gösterir; dokuz izin karakterinden ve oktal hesaplamadan ayrı tutulur.