คุณจะดูการอนุญาตไฟล์ได้อย่างไร


79

ฉันต้องการทราบวิธีดูการอนุญาตที่ไฟล์ใดไฟล์หนึ่งมี ฉันควรพิมพ์คำสั่งใดในเทอร์มินัล อย่างไรก็ตามฉันไม่ต้องการเปลี่ยน


หากนี่ไม่ใช่รายการที่ซ้ำกันโปรดทำเครื่องหมายว่าได้รับการคุ้มครอง นี่เป็นคำถามที่สำคัญ
evilMinion

คำตอบ:


110

หากคุณต้องการดูการอนุญาตของไฟล์คุณสามารถใช้ls -l /path/to/fileคำสั่ง

ตัวอย่างเช่น

   ls -l acroread 
   -rwxr-xr-x 1 10490 floppy 17242 May  8  2013 acroread


สิ่งนี้หมายความว่า ?

ก่อน-แสดงถึงไฟล์ปกติ มันให้คำใบ้เกี่ยวกับประเภทของวัตถุที่มันเป็น มันสามารถมีค่าต่อไปนี้

  • d (ไดเรกทอรี)
  • c (อุปกรณ์ตัวอักษร)
  • l (symlink)
  • p (ชื่อไปป์)
  • s (ซ็อกเก็ต)
  • b (อุปกรณ์บล็อก)
  • D (ประตู)
  • - (ไฟล์ปกติ)


rหมายถึงสิทธิ์ในการอ่าน
wหมายถึงสิทธิ์ในการเขียนและ
xแสดงถึงสิทธิ์อนุญาตปฏิบัติการ

การรวมกันครั้งแรกของrwxหมายถึงการได้รับอนุญาตสำหรับเจ้าของ
การรวมกันของสองrwxหมายถึงการได้รับอนุญาตสำหรับกลุ่ม
การรวมกันที่สามของการrwxเป็นตัวแทนรับอนุญาตสำหรับอื่น ๆของไฟล์


สัญกรณ์ Octal

การอนุญาตของไฟล์ยังสามารถแสดงในรูปแบบเลขฐานแปด
ในสัญกรณ์แปด

อ่านหรือrแสดงโดย 4
เขียนหรือwแสดงโดย 2
ดำเนินการxแทนด้วย 1

ผลรวมของสามสิ่งนี้ใช้เพื่อแสดงการอนุญาต

stat สามารถใช้คำสั่งเพื่อดูการอนุญาตไฟล์ในสัญกรณ์ฐานแปด

  stat -c "%a %n" /path/of/file

ตัวอย่างเช่น

   stat -c "%a %n" acroread 
   755 acroread

ที่นี่คุณสามารถเห็น

สำหรับเจ้าของมันคือ 4 +2 + 1 = 7 (111 ในไบนารี)
สำหรับกลุ่มมันคือ 4 + 0 + 1 = 5 (101 ในไบนารี) และ
สำหรับอื่น ๆมันคือ 4 + 0 + 1 = 5 (101 ในไบนารี)


18

คุณสามารถใช้รายชื่อยาว:

ls -l [filename]

หรือสถิติ:

stat [filename]

สถิติครอบคลุมมากขึ้น มันแสดงให้คุณเห็นการเข้าถึงแก้ไขและเปลี่ยนแปลงเวลาเช่นเดียวกับข้อมูล Inode และขนาดซึ่งอาจเป็นประโยชน์กับคุณหรือไม่


หมายเหตุ: "มันขึ้นอยู่กับ" คำสั่งนั้นจะแสดงการอนุญาตมาตรฐานอย่างไรก็ตามการเข้าถึงของคุณสามารถถูก จำกัด โดยวิธีอื่น acl, apparmor และ selinux สามารถ จำกัด การเข้าถึงภายนอกสิ่งที่แสดงโดย ls -l
Panther

7

ไม่ว่าคุณจะใช้สิทธิ์ ACL จริงหรือไม่หากคุณมีaclแพ็คเกจที่ติดตั้งไว้คุณสามารถใช้getfacl <path>เพื่อรับการแบ่งสิทธิ์ที่ดีในไฟล์นั้น

$ getfacl /root/
# file: root/
# owner: root
# group: root
user::rwx
group::---
other::---

ถ้าคุณทำใช้สิทธิ์ ACL ก็จะบอกคุณเกี่ยวกับสิทธิ์ที่lsและstatก็ไม่สามารถ

$ sudo setfacl -m u:oli:r /root
$ getfacl /root/
# file: root/
# owner: root
# group: root
user::rwx
user:oli:r--
group::---
mask::r--
other::---
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.