“ + 3” หมายถึงอะไรในผลลัพธ์ของ 'ls -al'?


9

ตั้งใจเมื่อย้ายไปยังระดับเสียงที่ติดตั้งและการพิมพ์ll(นามแฝงสำหรับls -laF)

:/media/username/DATA$ ll
total 153
drwxrwxrwx  1 username username  8192 Sep  1 20:32 ./
drwxr-x---+ 3 root     root      4096 Sep  3 08:14 ../
drwxrwxrwx  1 username username 12288 Jul 26 22:29 documents/
drwxrwxrwx  1 username username 16384 Sep  2 02:01 downloads/

ฉันมีส่วนที่น่าสนใจนี้: drwxr-x---+ 3

ฉันเข้าใจส่วนdrwxr-x---นี้ แต่ส่วนอื่น ๆ+ 3หมายถึงอะไร

Ps: ฉันใช้ Ubuntu 16.04 x86


1
คุณหมายถึงคุณอยากรู้เกี่ยวกับจำนวนระหว่างสตริงสิทธิ์และชื่อเจ้าของหรือไม่
ผู้บัญชาการไบต์

4
สำหรับส่วนของls -lเอาต์พุตที่อธิบายโปรดดูaskubuntu.com/q/710905 , askubuntu.com/q/517229หรือunix.stackexchange.com/q/103114โปรด
ผู้บัญชาการไบต์

คำตอบ:


14

+หลังจากบิตที่ได้รับอนุญาตตามปกติแสดงให้เห็นว่าได้รับอนุญาตเป็นพิเศษคือผลสำหรับไฟล์ / ไดเรกทอรี สิทธิ์พิเศษคือ POSIX ACL (รายการควบคุมการเข้าถึง)

คุณสามารถตั้งค่ากฎ ACL โดยใช้setfaclและดูกฎชุดแล้ว (s) getfaclโดย

ตัวอย่าง:

% ls -l foo.sh
-rwxrwxr-x 1 foobar foobar 206 Aug 28 02:08 foo.sh

% setfacl -m u:spamegg:x foo.sh

% ls -l foo.sh                
-rwxrwxr-x+ 1 foobar foobar 206 Aug 28 02:08 foo.sh

% getfacl foo.sh
# file: foo.sh
# owner: foobar
# group: foobar
user::rwx
user:spamegg:--x
group::rwx
mask::rwx
other::r-x

ตรวจสอบman getfaclและman setfaclรับแนวคิดเพิ่มเติม

ในฐานะที่เป็นบันทึกด้านข้างหากคุณเห็น.สถานที่ของ+นั่นสำหรับบริบท SELINUX


และ3หลังจากนั้น+ระบุจำนวนฮาร์ดลิงก์ที่ไฟล์มี ฮาร์ดลิงก์คือชื่อไฟล์ (inode ของไฟล์อย่างแม่นยำ) ดังนั้นจำนวนฮาร์ดลิงก์จะระบุจำนวนชื่อไฟล์ที่มี

ในกรณีของคุณรายการคือ:

drwxr-x---+ 3 root     root      4096 Sep  3 08:14 ../

มันมีไว้สำหรับไดเรกทอรีหลักของไดเรกทอรีปัจจุบัน ( /media/username/DATA) ดังนั้น..ชี้ไปที่/media/usernameไดเรกทอรี

ตอนนี้ใน Linux ทุกไดเรกทอรีมีฮาร์ดลิงก์อย่างน้อยสองลิงก์อันหนึ่งใช้สำหรับ.(ไดเรกทอรีปัจจุบันลิงก์ไปยังตัวเอง) และอีกอันคือรายการในไดเรกทอรีหลัก (การแมปชื่อ - inode) ซึ่งสืบทอดมาจาก Unix

คุณมีฮาร์ดลิงก์นับเป็น 3 สำหรับ/media/usernameซึ่งหมายความว่า/media/usernameมีไดเรกทอรีย่อยหนึ่งรายการ (ค่าเริ่มต้น 2 บวกหนึ่งสำหรับ..รายการของไดเรกทอรีย่อย) หากมี 2 ไดเรกทอรีย่อยจำนวนฮาร์ดลิงก์จะเท่ากับ 4 เนื่องจากการจับคู่ไดเรกทอรีย่อยทั้งสอง..กลับไปที่แม่


ตรวจสอบman lsด้วย


1
นั่นเป็นไดเรกทอรีดังนั้นการนับลิงก์คือจำนวนไดเรกทอรีย่อยบวกสองรายการ
เควิน

@Kevin เพิ่มคำอธิบายโดยละเอียด
heemayl

7

+ในตอนท้ายของสตริงสิทธิ์หมายถึงสิทธิ์ ACL ( รายการควบคุมการเข้าถึง ) คุณสามารถดูได้อย่างแม่นยำว่าอนุญาตอะไรและผู้ใช้รายไหน

getfacl ../

หรือว่า .. แทน

getfacl /media/$USER

ในกรณีของฉัน:

$ getfacl /media/zanna
getfacl: Removing leading '/' from absolute path names
# file: media/zanna
# owner: root
# group: root
user::rwx
user:zanna:r-x
group::---
mask::r-x
other::---

สิ่งนี้แสดงเจ้าของและกลุ่มจากนั้นสิทธิ์ "ผู้ใช้" (เจ้าของ) กลุ่มและโลก (อื่น ๆ ) ที่ไม่มีชื่อพร้อมรายการพิเศษสำหรับผู้ใช้ zanna "หน้ากาก" จำกัด สิทธิ์ที่มีประสิทธิภาพสำหรับกลุ่มและผู้ใช้ที่มีชื่อ

ACLs เป็นส่วนขยายของระบบการอนุญาต Linux แบบดั้งเดิมที่อนุญาตให้ตั้งค่าการอนุญาตสำหรับผู้ใช้หรือกลุ่มเดียวทำให้สามารถควบคุมได้ดีขึ้น คุณสามารถอ่านเพิ่มเติมเกี่ยวกับเหตุผลด้านความปลอดภัยสำหรับการรูทเป็นเจ้าของจุดเชื่อมต่อนี้และการใช้สิทธิ์ ACL /mediaในโพสต์นี้

ไม่เกี่ยวข้องกับ3 +ระบุจำนวนฮาร์ดลิงก์ไปยังไฟล์


2
สิ่งนี้อธิบายได้เพียงอย่างเดียวว่า+สัญญาณใดที่ ACL ใช้งานได้สำหรับรายการนี้นอกเหนือจากการตั้งค่าการอนุญาตแบบดั้งเดิม 3แต่นี้ไม่ได้อธิบาย
ผู้บัญชาการไบต์

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