Apa yang ditunjukkan oleh karakter pertama dari string mode UNIX?

29

Saya sangat akrab dengan izin file linux, dan izin khusus (bit sticky, suid, guid)

Tapi saya tidak tahu apa cartinya? Apakah ini izin, atau yang lainnya? Saya telah melakukan beberapa pencarian dengan Google dan tidak dapat menemukannya.

Inilah file perangkat yang memilikinya.

steven@A215:~$ ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Dec 29 20:58 /dev/null
pengguna169254
sumber
Sepertinya semua /devmemiliki izin khusus itu.
Seth
1
Itu bukan izin. Ini jenis file.
Gilles 'SANGAT berhenti menjadi jahat'

Jawaban:

34

Ini berarti bahwa file tersebut adalah file karakter khusus - pada dasarnya file perangkat yang menyediakan akses serial (sebagai lawan dari blok perangkat khusus seperti drive disk). Misalnya terminal dan perangkat serial dihubungkan melalui file karakter khusus ( /dev/tty1, /dev/ttyS0dan sebagainya).

Untuk pengantar singkat tentang file perangkat, lihat Linux / UNIX: File perangkat [cyberciti.biz]. Untuk diskusi yang lebih rinci, lihat jawaban stackexchange ini Memahami / dev dan subdir serta file-nya . Untuk mempelajari tentang struktur data yang mendasari lihat Bab 4 dari Panduan Pemrograman Modul Kernel Linux: Character Device Files [tldp.org]

Steeldriver
sumber
3
Bagus, tetapi akan lebih baik jika Anda sedikit memperluas jawaban dan memberikan beberapa tautan bermanfaat. :)
Saurav Kumar
3
@SauravKumar jangan ragu untuk menambahkan - Saya tidak dapat menemukan apa pun pada tingkat yang sesuai (baik tidak menambahkan apa-apa, atau langsung menyelam ke dalam struct char_devicepemrograman kode C code)
steeldriver
@steeldriver Ini mungkin memberi Anda awal :)
Seth
20

Perangkat karakter ditandai dengan csebagai huruf pertama dari string mode. Demikian juga, perangkat blok ditandai dengan 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

ada lebih banyak perangkat khusus ini (file dalam arti bahwa semuanya adalah file di Linux),

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

Lihat halaman wikipedia ini untuk lebih jelasnya.

souravc
sumber
apakah ada cara untuk mengatasinya?
Edik Mkoyan
5

ls -lmenghasilkan 10 simbol string informasi UNIX yang populer dikenal sebagai string izin. misalnya

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

Karakter pertama dari string perizinan atau string mode , yang dikenal sebagai deskriptor file , menunjukkan jenis file dan sembilan sisanya diambil dalam kelompok tiga yang mengindikasikan izin untuk file yang bersangkutan, di mana:

  • grup tiga karakter pertama (setelah karakter pertama di antara 10 karakter) menunjukkan izin pemilik,
  • grup kedua dari tiga izin yang ditetapkan untuk grup,
  • kelompok terakhir yang terdiri dari tiga izin khusus untuk orang lain (atau dunia).

Di sini, dalam contoh di atas karakter / simbol pertama "-" menunjukkan file normal.

Sedangkan dalam contoh berikut,

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

karakter pertama string perizinan adalah "c" dan seperti yang dinyatakan di atas, itu adalah indikator tipe file yang menunjukkan perangkat karakter .

Selain itu -, cbeberapa deskriptor file lainnya adalah:

  • d -> direktori
  • l -> tautan simbolik
  • s -> soket Unix
  • b -> blokir perangkat
  • p -> pipa
  • D -> Pintu

Referensi:

tepat
sumber
2

Karakter pertama di kolom pertama, yaitu, 'c' di crw-rw-rw- di atas, memberi tahu pengguna informasi jenis file, dalam hal ini perangkat karakter.

Maythux
sumber