จะตรวจสอบการอนุญาตของสารบบได้อย่างไร?


315

ฉันรู้ว่าการใช้ls -l "directory/directory/filename"บอกสิทธิ์ของไฟล์ ฉันจะทำเช่นเดียวกันในไดเรกทอรีได้อย่างไร

เห็นได้ชัดว่าฉันสามารถใช้ls -lในไดเรกทอรีที่สูงขึ้นในลำดับชั้นและจากนั้นเลื่อนจนกว่าฉันจะพบ แต่มันช่างเป็นความเจ็บปวด ถ้าฉันใช้ls -lในไดเรกทอรีจริงมันจะให้สิทธิ์ / ข้อมูลของไฟล์ที่อยู่ข้างในและไม่ใช่ของไดเรกทอรีจริง

ฉันลองสิ่งนี้ใน terminal ของทั้ง Mac OS X 10.5 และ Linux (Ubuntu Gutsy Gibbon) และมันก็เป็นผลลัพธ์เดียวกัน มีธงบางอย่างที่ฉันควรใช้?

คำตอบ:


418

นี่คือคำตอบสั้น ๆ :

$ ls -ld directory

นี่คือสิ่งที่มันทำ:

-d, --directory
    list directory entries instead of contents, and do not dereference symbolic links

คุณอาจจะสนใจในmanpages นั่นคือสิ่งที่ทุกคนในที่นี่ได้รับคำตอบที่ดีจากพวกเขา

อ้างถึงหน้าคนออนไลน์


24
ฉันคิดว่าหน้าคนพูดไม่ดี ฉัน scoured ห้าครั้งก่อนที่ฉันเริ่ม googling ฉันไม่ต้องการไดเรกทอรี 'รายการ' (สิ่งที่ 'ป้อน' ลงในไดเรกทอรีหรือไม่เช่นไฟล์และไดเรกทอรีย่อย? ของพวกเขา) หรือ 'เนื้อหา' ของพวกเขา (พวกเขาเสียงเหมือนแนวคิดเดียวกันกับผม) ผมต้องการไดเรกทอรีที่ตัวเอง
user151841

2
มันเป็นคำศัพท์มาตรฐานสมบูรณ์ไดเรกทอรีที่ตัวเองมีรายการไดเรกทอรีเช่นรายการในระบบแฟ้ม
alldayremix

33
อาจเป็นศัพท์มาตรฐาน แต่สำหรับคนที่น่าจะถามคำถามเช่นนั้นมันอาจสับสนกับศัพท์แสง
CatShoes

60

คุณยังสามารถใช้statคำสั่งหากคุณต้องการข้อมูลรายละเอียดเกี่ยวกับไฟล์ / ไดเรกทอรี (ฉันบอกตรงนี้เมื่อคุณบอกว่าคุณกำลังเรียนรู้อยู่ ^^)


4
สถิติจะแสดงให้คุณเห็นในหลาย ๆ สิ่งที่ได้รับอนุญาต: (0755 / drwxr-xr-x)
zzapper

2
สิ่งนี้มีประโยชน์คุณจึงสามารถดูรูปแบบการอนุญาตเชิงตัวเลขเช่นกัน
ที่ดิน

2
"stat -c% a directory" จะแสดงเป็นตัวเลข
Nerius Jok

2
ที่สอดคล้องกันใน MacOS stat -f %A dir_or_filenameเป็น
ILED


10

ใน GNU / Linux พยายามที่จะใช้ls, namei, ,getfaclstat

สำหรับ Dir

[flying@lempstacker ~]$ ls -ldh /tmp
drwxrwxrwt. 23 root root 4.0K Nov  8 15:41 /tmp
[flying@lempstacker ~]$ namei -l /tmp
f: /tmp
dr-xr-xr-x root root /
drwxrwxrwt root root tmp
[flying@lempstacker ~]$ getfacl /tmp
getfacl: Removing leading '/' from absolute path names
# file: tmp
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx

[flying@lempstacker ~]$ 

หรือ

[flying@lempstacker ~]$ stat -c "%a" /tmp
1777
[flying@lempstacker ~]$ stat -c "%n %a" /tmp
/tmp 1777
[flying@lempstacker ~]$ stat -c "%A" /tmp
drwxrwxrwt
[flying@lempstacker ~]$ stat -c "%n %A" /tmp
/tmp drwxrwxrwt
[flying@lempstacker ~]$

สำหรับไฟล์

[flying@lempstacker ~]$ ls -lh /tmp/anaconda.log
-rw-r--r-- 1 root root 0 Nov  8 08:31 /tmp/anaconda.log
[flying@lempstacker ~]$ namei -l /tmp/anaconda.log
f: /tmp/anaconda.log
dr-xr-xr-x root root /
drwxrwxrwt root root tmp
-rw-r--r-- root root anaconda.log
[flying@lempstacker ~]$ getfacl /tmp/anaconda.log
getfacl: Removing leading '/' from absolute path names
# file: tmp/anaconda.log
# owner: root
# group: root
user::rw-
group::r--
other::r--

[flying@lempstacker ~]$

หรือ

[flying@lempstacker ~]$ stat -c "%a" /tmp/anaconda.log
644
[flying@lempstacker ~]$ stat -c "%n %a" /tmp/anaconda.log
/tmp/anaconda.log 644
[flying@lempstacker ~]$ stat -c "%A" /tmp/anaconda.log
-rw-r--r--
[flying@lempstacker ~]$ stat -c "%n %A" /tmp/anaconda.log
/tmp/anaconda.log -rw-r--r--
[flying@lempstacker ~]$

10

ไดเรกทอรี $ ls -ld

(ls)หมายถึงรายการไฟล์และไดเรกทอรี

(-)ระบุว่าไฟล์เป็นไฟล์ปกติ

(l)หมายถึงรายการที่มีความยาว

(d)ระบุว่าไฟล์เป็นไดเรกทอรีซึ่งโดยทั่วไปเป็นไฟล์ชนิดพิเศษ



5

นอกเหนือจากการโพสต์ข้างต้นฉันต้องการที่จะชี้ให้เห็นว่า "man ls" จะให้คู่มือที่ดีเกี่ยวกับคำสั่ง "ls" (รายการ ")

นอกจากนี้การใช้ ls -la myFile จะแสดงรายการและแสดงข้อเท็จจริงทั้งหมดเกี่ยวกับไฟล์นั้น


5

บน OS X คุณสามารถใช้:

ls -lead

ตัวเลือก e แสดง ACL และ ACL นั้นสำคัญมากที่ต้องทราบว่าการอนุญาตที่แน่นอนในระบบของคุณคืออะไร


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