Ký tự đầu tiên của chuỗi chế độ UNIX biểu thị điều gì?


29

Tôi rất quen thuộc với các quyền của tệp linux và các perm đặc biệt (bit dính, suid, hướng dẫn)

Nhưng tôi không biết những gì ctượng trưng cho? Nó là một sự cho phép, hoặc cái gì khác? Tôi đã thực hiện một số googling với và không thể tìm ra nó.

Đây là tập tin thiết bị có nó.

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

Có vẻ như tất cả đều /devcó sự cho phép đặc biệt đó.
Seth


1
Đó không phải là một sự cho phép. Đó là loại tập tin.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


34

Điều đó có nghĩa là tệp là một tệp đặc biệt của ký tự - về cơ bản là tệp thiết bị cung cấp quyền truy cập nối tiếp (trái ngược với một thiết bị đặc biệt khối như ổ đĩa). Ví dụ: thiết bị đầu cuối và thiết bị nối tiếp được giao tiếp thông qua các tệp đặc biệt của ký tự ( /dev/tty1,/dev/ttyS0 và vân vân).

Để biết giới thiệu ngắn gọn về các tệp thiết bị, hãy xem Linux / UNIX: Tệp thiết bị [cyberciti.biz]. Để thảo luận chi tiết hơn, hãy xem câu trả lời stackexchange này Hiểu / dev và các thư mục con và tệp của nó . Để tìm hiểu về các cấu trúc dữ liệu cơ bản, hãy tham khảo Chương 4 của Hướng dẫn lập trình mô-đun hạt nhân Linux: Tệp thiết bị ký tự [tldp.org]


3
Mặc dù tốt, nhưng sẽ tốt hơn nếu bạn mở rộng câu trả lời của mình thêm một chút và cung cấp một số liên kết hữu ích. :)
Saurav Kumar

3
@SauravKumar xin vui lòng thêm một số - Tôi không thể tìm thấy bất cứ điều gì ở một mức độ phù hợp (hoặc thêm gì cả, hoặc lặn ngay vào struct char_devicemã C Kernel lập trình)
steeldriver

@steel ấn Những thứ này có thể giúp bạn bắt đầu :)
Seth

20

Một thiết bị ký tự được đánh dấu bằng một cchữ cái đầu tiên của chuỗi chế độ. Tương tự, một thiết bị khối được đánh dấu bằng 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

có nhiều thiết bị đặc biệt hơn (các tệp theo nghĩa là mọi thứ đều là tệp trong Linux),

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

Xem trang wikipedia này để biết thêm chi tiết.


Có cách nào để mèo không?
Edik Mkoyan

5

ls -lxuất ra một chuỗi thông tin UNIX 10 ký hiệu thường được gọi là chuỗi quyền. ví dụ

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

Ký tự đầu tiên của chuỗi quyền hoặc chuỗi chế độ , được gọi là bộ mô tả tệp , cho biết loại tệp và chín loại còn lại được lấy trong nhóm ba cho biết các quyền đối với tệp có liên quan, trong đó:

  • nhóm đầu tiên gồm ba ký tự (sau ký tự đầu tiên trong số 10) cho biết quyền của chủ sở hữu
  • nhóm thứ hai gồm ba quyền chỉ định cho nhóm,
  • nhóm cuối cùng của ba quyền chỉ định cho người khác (hoặc thế giới).

Ở đây, trong ví dụ trên, ký tự / ký hiệu đầu tiên là "-" biểu thị một tệp bình thường.

Trong khi trong các ví dụ sau,

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

ký tự đầu tiên của chuỗi cấp phép là "c" và như đã nêu ở trên, đây là chỉ báo loại tệp cho biết thiết bị ký tự .

Ngoài ra -, cmột số mô tả tập tin khác là:

  • d -> thư mục
  • l -> liên kết tượng trưng
  • s -> Ổ cắm Unix
  • b -> chặn thiết bị
  • p -> đường ống
  • D -> Cửa

Tài liệu tham khảo:


2

Ký tự đầu tiên trong cột đầu tiên, nghĩa là 'c' trong crw-rw-rw- ở trên, cho người dùng biết loại tệp, trong trường hợp này là một thiết bị ký tự.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.