UNIX modu dizesinin ilk karakteri ne gösterir?


29

Linux dosya izinlerini ve özel izinleri (yapışkan bit, suid, guid) çok tanıdık

Ama ne anlama geldiğini bilmiyorum c? Bu izin mi, yoksa başka bir şey mi? Bazı googling yaptım ve çözemiyorum.

İşte ona sahip olan cihaz dosyası.

steven@A215:~$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Dec 29 20:58 /dev/null

Tüm /devbu özel izne sahip gibi görünüyor .
Seth,


1
Bu bir izin değil. Bu dosya tipi.
Gilles 'SO- kötülük' dur '30

Yanıtlar:


34

Bu, dosyanın karakter özel bir dosya olduğu anlamına gelir - temelde seri erişim sağlayan bir cihaz dosyasıdır ( disk sürücüsü gibi özel bir bloğun aksine ). Örnek terminalleri ve seri cihazları karakter özel dosyaları (ile ara-yüzeylenir için /dev/tty1, /dev/ttyS0ve benzeri).

Cihaz dosyalarına kısa bir giriş için Linux / UNIX'e bakınız : Cihaz dosyaları [cyberciti.biz]. Daha ayrıntılı bir tartışma için bu stackexchange cevabına bakınız. / Dev ve alt dizinlerini ve dosyalarını anlama . Temel veri yapıları hakkında bilgi edinmek için, Linux Çekirdek Modülü Programlama Kılavuzunun 4. Bölümüne bakın: Karakter Aygıt Dosyaları [tldp.org]


3
Yine de iyi, ancak cevabınızı biraz daha genişletip bazı faydalı bağlantılar sağlamanız daha iyi olacaktır. :)
Saurav Kumar

3
@SauravKumar bazılarını eklemek için çekinmeyin - uygun düzeyde hiçbir şey bulamadım (ya hiçbir şey eklemedim ya da doğrudan struct char_deviceC kodu Çekirdeği programlamasına
daldım

@ steeldriver Bunlar size bir başlangıç ​​verebilir :)
Seth

20

Bir karakter aygıtı, cmod dizesinin ilk harfi olarak işaretlenir . Benzer şekilde, bir blok cihazı ile işaretlenir b,

$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Jan 21 21:50 /dev/null
$ ls -l /dev/sda
brw-rw---- 1 root disk 8, 0 Jan 21 21:50 /dev/sda

bu özel cihazlardan daha fazlası var (Linux'ta her şeyin bir dosya olduğu anlamında dosyalar),

d : directory
s : socket
p : pipe
D : Door
l : symbolic link etc.

Daha fazla bilgi için bu wikipedia sayfasına bakınız.


Bunu yapmanın bir yolu var mı?
Edik Mkoyan

5

ls -lPopüler olarak izin dizesi olarak bilinen 10 simgeli UNIX dizgesini çıktılar Örneğin

-rw-rw-r--  1 userName groupName   13200650 Dec 13 21:23 fileName

Dosya tanıtıcısı olarak bilinen izin dizesinin ya da mod dizesinin ilk karakteri , dosya türünü belirtir ve kalan üçü grup halinde alınan dokuz, söz konusu dosyanın izinlerini belirtir.

  • üç karakterden oluşan ilk grup (10 arasındaki ilk karakterden sonra) sahibinin izinlerini belirtir,
  • ikinci grup üçlü grup için izinleri,
  • Son üçlü grup, diğerleri (veya dünya) için izinleri belirler.

Burada, yukarıdaki örnekte ilk karakter / sembol "-" normal bir dosyayı gösterir.

Aşağıdaki örneklerde,

crw-rw-rw- 1 root root 1, 3 Dec 29 20:58 /dev/null
crw-rw-rw- 1 root root 1, 5 Jan 13 20:56 /dev/zero

İzin dizelerinin ilk karakteri "c" dir ve yukarıda belirtildiği gibi karakter karakterini belirten dosya tipi bir göstergedir .

Bunun dışında -, cbazı diğer dosya tanımlayıcılarıdır:

  • d -> dizini
  • l -> sembolik bağlantı
  • s -> Unix soketi
  • b -> cihazı engelle
  • p -> boru hattı
  • D -> Kapı

Referanslar:


2

İlk sütundaki ilk karakter, yani yukarıdaki crw-rw-rw-'de' c 'bilgili bir kullanıcıya dosyanın türünü, bu durumda bir karakter cihazını söyler.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.