Co oznacza pierwszy znak ciągu trybu UNIX?


29

Bardzo dobrze znam uprawnienia do plików linux i specjalne perms (lepki bit, suid, guid)

Ale nie wiem, co coznacza skrót? Czy to pozwolenie czy coś innego? Zrobiłem trochę googlingu i nie mogę tego rozgryźć.

Oto plik urządzenia, który go zawiera.

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

Wygląda na to, że wszyscy /devmają to specjalne pozwolenie.
Seth


1
To nie jest pozwolenie. To typ pliku.
Gilles „SO - przestań być zły”,

Odpowiedzi:


34

Oznacza to, że plik jest plikiem specjalnym znakowym - zasadniczo plikiem urządzenia, który zapewnia dostęp szeregowy (w przeciwieństwie do specjalnego urządzenia blokowego , takiego jak napęd dyskowy). Na przykład terminale i urządzenia szeregowe są podłączone za pośrednictwem specjalnych plików znakowych ( /dev/tty1, /dev/ttyS0i tak dalej).

Krótkie wprowadzenie do plików urządzeń znajduje się w Linux / UNIX: Pliki urządzeń [cyberciti.biz]. Aby uzyskać bardziej szczegółową dyskusję, zobacz odpowiedź na temat wymiany stosów Zrozumienie / dev oraz jego podkatalogów i plików . Aby dowiedzieć się o podstawowych strukturach danych, zapoznaj się z Rozdziałem 4 Podręcznika programowania modułu jądra Linux: Pliki urządzeń znakowych [tldp.org]


3
Dobrze, ale lepiej będzie, jeśli rozszerzysz nieco swoją odpowiedź i podasz przydatne linki. :)
Saurav Kumar,

3
@SauravKumar, proszę dodać trochę - nie mogłem znaleźć niczego na odpowiednim poziomie (ani niczego nie dodałem, ani nie zagłębiłem się w struct char_deviceprogramowanie jądra kodu C)
steeldriver

@steeldriver Mogą one dać ci początek :)
Seth

20

Urządzenie znakowe jest oznaczone cjako pierwsza litera ciągu trybu. Podobnie urządzenie blokowe jest oznaczone symbolem 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

tych specjalnych urządzeń jest więcej (pliki w tym sensie, że w Linuksie wszystko jest plikiem),

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

Zobacz tę stronę wikipedii, aby uzyskać więcej informacji.


czy jest jakiś sposób, aby to zrobić?
Edik Mkoyan

5

ls -lwyprowadza 10-znakowy ciąg znaków UNIX, popularnie znany jako ciąg uprawnień. na przykład

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

Pierwszy znak ciągu uprawnień lub ciągu trybu , znany jako deskryptor pliku , wskazuje typ pliku, a pozostałe dziewięć w grupach trzyosobowych wskazuje uprawnienia dla danego pliku, gdzie:

  • pierwsza grupa trzech znaków (po pierwszym znaku spośród 10) wskazuje uprawnienia właściciela,
  • druga grupa trzech wyznacza uprawnienia dla grupy,
  • ostatnia grupa trzech wyznacza uprawnienia dla innych (lub świata).

Tutaj, w powyższym przykładzie pierwszy znak / symbol „-” oznacza normalny plik.

Podczas gdy w poniższych przykładach

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

pierwszy znak ciągu uprawnień to „c” i jak wspomniano powyżej, jest to wskaźnik typu pliku, który wskazuje urządzenie znakowe .

Oprócz -, cniektóre inne deskryptory plików są:

  • d -> katalog
  • l -> link symboliczny
  • s -> Gniazdo Unix
  • b -> urządzenie blokowe
  • p -> rurociąg
  • D -> Drzwi

Referencje:


2

Pierwszy znak w pierwszej kolumnie, tj. „C” w crw-rw-rw- powyżej, informuje poinformowanego użytkownika o typie pliku, w tym przypadku o urządzeniu znakowym.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.