อักขระตัวแรกของสตริงโหมด UNIX หมายถึงอะไร?


29

ฉันคุ้นเคยกับการอนุญาตของไฟล์ linux และ perms พิเศษ (sticky bit, suid, guid)

แต่ฉันไม่รู้ว่าcหมายถึงอะไร มันคือการอนุญาตหรืออย่างอื่น? ฉันทำ googling ด้วยแล้วและคิดออกไม่ได้

นี่คือไฟล์อุปกรณ์ที่มี

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

ดูเหมือนว่าทุกคน/devมีสิทธิ์พิเศษนั้น
เซ


1
มันไม่ได้รับอนุญาต มันเป็นประเภทไฟล์
Gilles 'หยุดชั่วร้าย'

คำตอบ:


34

หมายความว่าไฟล์นั้นเป็นไฟล์พิเศษของอักขระ - โดยทั่วไปคือไฟล์อุปกรณ์ที่ให้การเข้าถึงแบบอนุกรม (ตรงข้ามกับอุปกรณ์บล็อกพิเศษเช่นดิสก์ไดรฟ์) สำหรับอาคารตัวอย่างและอุปกรณ์แบบอนุกรมมีการเชื่อมต่อผ่านไฟล์อักขระพิเศษ ( /dev/tty1, /dev/ttyS0และอื่น ๆ )

สำหรับข้อมูลเบื้องต้นเกี่ยวกับไฟล์อุปกรณ์โปรดดูLinux / UNIX: ไฟล์อุปกรณ์ [cyberciti.biz] สำหรับการอภิปรายรายละเอียดเพิ่มเติมโปรดดูที่นี้คำตอบ stackexchange เข้าใจ / dev และ subdirs และไฟล์ หากต้องการเรียนรู้เกี่ยวกับโครงสร้างข้อมูลอ้างอิงบทที่ 4 ของคู่มือการเขียนโปรแกรมโมดูลเคอร์เนล Linux: ไฟล์อุปกรณ์อักขระ [tldp.org]


3
ดี แต่จะดีกว่าถ้าคุณขยายคำตอบของคุณให้มากขึ้นและให้ลิงก์ที่มีประโยชน์ :)
Saurav Kumar

3
@SauravKumar โปรดเพิ่มบางอย่าง - ฉันไม่สามารถหาอะไรในระดับที่เหมาะสม (ไม่ได้เพิ่มอะไรเลยหรือดำดิ่งลงไปในstruct char_deviceการเขียนโปรแกรมเคอร์เนลรหัส C)
steeldriver

@steeldriver เหล่านี้อาจให้คุณเริ่มต้น :)
เซท

20

อุปกรณ์ตัวละครจะถูกทำเครื่องหมายด้วยcตัวอักษรตัวแรกของสตริงโหมด ในทำนองเดียวกันอุปกรณ์ป้องกันถูกทำเครื่องหมายด้วย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

มีอุปกรณ์พิเศษเหล่านี้มากกว่า (ไฟล์ในแง่ที่ว่าทุกอย่างเป็นไฟล์ใน Linux)

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

ดูหน้าวิกิพีเดียนี้สำหรับรายละเอียดเพิ่มเติม


มีวิธีที่จะแมวที่?
Edik Mkoyan

5

ls -lเอาต์พุตสตริงข้อมูล UNIX 10 สัญลักษณ์ที่รู้จักกันแพร่หลายว่าเป็นสตริงการอนุญาต เช่น

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

อักขระตัวแรกของสตริงการอนุญาตหรือสตริงโหมดเรียกว่าfile descriptorระบุประเภทไฟล์และส่วนที่เหลืออีกเก้าตัวที่อยู่ในกลุ่มที่สามบ่งชี้ว่าการอนุญาตสำหรับไฟล์ที่เกี่ยวข้องโดยที่:

  • กลุ่มแรกของสามตัวอักษร (หลังตัวละครตัวแรกในหมู่ 10) ระบุสิทธิ์ของเจ้าของ
  • กลุ่มที่สองของสามสิทธิ์กำหนดสำหรับกลุ่ม
  • กลุ่มสุดท้ายของสามสิทธิ์การอนุญาตสำหรับผู้อื่น (หรือโลก)

ในตัวอย่างด้านบนอักขระ / สัญลักษณ์ตัวแรก"-"หมายถึงไฟล์ปกติ

ในขณะที่ในตัวอย่างต่อไปนี้

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

ตัวอักษรตัวแรกสายได้รับอนุญาตเป็น'C'และเช่นเดียวกับที่ระบุไว้ข้างต้นก็เป็นตัวบ่งชี้ประเภทไฟล์ซึ่งบ่งชี้ว่าอุปกรณ์ตัว

นอกเหนือจาก-, cบางอธิบายไฟล์อื่น ๆ :

  • d -> ไดเรกทอรี
  • l -> ลิงก์สัญลักษณ์
  • s -> ซ็อกเก็ต Unix
  • b -> อุปกรณ์บล็อก
  • p -> ไปป์ไลน์
  • D -> ประตู

อ้างอิง:


2

อักขระตัวแรกในคอลัมน์แรกคือ 'c' ใน crw-rw-rw- ด้านบนจะบอกประเภทของไฟล์ให้กับผู้ใช้ที่ได้รับการบอกกล่าวในกรณีนี้อุปกรณ์ตัวอักษร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.