ฉันจำได้ว่ากำลังทำอะไรเช่น "XXX / home / user / dir / child / file" และมันคืนเจ้าของและ / หรือได้รับอนุญาตจาก:
/home
/home/user
/home/user/dir
/home/user/child
/home/user/child/file
แต่ฉันจำไม่ได้ว่าคำสั่งนี้คืออะไร ใครมีความคิด?
ฉันจำได้ว่ากำลังทำอะไรเช่น "XXX / home / user / dir / child / file" และมันคืนเจ้าของและ / หรือได้รับอนุญาตจาก:
/home
/home/user
/home/user/dir
/home/user/child
/home/user/child/file
แต่ฉันจำไม่ได้ว่าคำสั่งนี้คืออะไร ใครมีความคิด?
คำตอบ:
คำสั่งอาจเป็น:
namei -m /home/user/dir/child/file
namei -mo
มันยอดเยี่ยมมากมันช่วยให้คุณเป็นเจ้าของ
sudo su nginx -s/bin/bash
ฉันคิดว่าคุณอาจจะคิดถึงtree
คำสั่ง ตัวอย่างเช่น:
$ tree -pufid apps/glassfish3/ | less
apps/glassfish3
[drwxr-xr-x saml ] apps/glassfish3/bin
[drwxr-xr-x saml ] apps/glassfish3/glassfish
[drwxr-xr-x saml ] apps/glassfish3/glassfish/bin
[drwxr-xr-x saml ] apps/glassfish3/glassfish/config
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api/doc-files
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api/javax
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api/javax/annotation
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api/javax/annotation/security
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api/javax/annotation/sql
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api/javax/decorator
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api/javax/ejb
[drwxr-xr-x saml ] apps/glassfish3/glassfish/docs/api/javax/ejb/embeddable
...
...
สวิตช์ข้างต้นทำสิ่งต่อไปนี้:
-p
- การอนุญาต-u
- ชื่อผู้ใช้ / หมายเลขผู้ใช้-f
- เส้นทางเต็ม-i
- อย่าพิมพ์บรรทัดการเยื้อง-d
- พิมพ์ไดเรกทอรีเท่านั้น/home/user/dir/child/file
ไม่ใช่เด็ก
-u
สิ่งที่จำเป็นจริงๆ? ดูเหมือนว่าจะเป็นค่าเริ่มต้นที่นี่ (เวอร์ชันต้นไม้ 1.6.0 ภายใต้ GNU bash 4.2.45) มีตัวเลือกในการปิดเสียง "ชื่อผู้ใช้ / หมายเลขผู้ใช้" หรือไม่?
หลังจากที่ให้มันเจ้าบางฉันมากับสิ่งนี้
#!/bin/sh
l_path=$1
while [ "$l_path" != / -a "$l_path" != . ]; do
ls -ld $l_path
l_path=$(dirname -- "$l_path")
done
ผลลัพธ์มีลักษณะเช่นนี้
-rw------- 1 tant tant 181016423 Jun 25 23:49:17 2013 /home/tant/test_file
drwxr-xr-x 85 tant tant 5632 Jul 9 19:40:11 2013 /home/tant
lrwxr-xr-x 1 root wheel 8 Sep 4 23:53:27 2012 /home -> usr/home
ฉันหวังว่ามันจะโอเคว่ามันจะอยู่ในลำดับย้อนกลับ
จากความคิดเห็นต่อไปนี้เป็นวิธีการแสดงรายการจากรูทล่าง:
#!/bin/sh
l_path=$1
while [ "$l_path" != / -a "$l_path" != . ]; do
ls -ld $l_path
l_path=$(dirname -- "$l_path")
done | sed '1!G;h;$!d'
| tac
ถ้าคุณมีหรือ| sed '1!G;h;$!d'
ไม่
ในไดเรกทอรีที่คุณต้องการทราบสิทธิ์และเจ้าของของ ancester:
for i in $(seq 0 $(pwd | tr -cd / | wc -c)) ; do pwd ; ls -lad ; cd .. ; done
โปรดทราบว่าหลังจากนั้นคุณจะอยู่ใน/
:) หากคุณต้องการกลับไปที่ที่คุณอยู่ให้ปิดคำสั่งไว้ข้างใน
HERE=$(pwd)
...
cd ${HERE}
คำสั่งที่คุณกำลังมองหารายชื่อและเจ้าของสิทธิ์ / กลุ่มคือคำสั่ง ls -l
ตัวเลือก -l ใช้สำหรับรูปแบบรายการยาว
ls -l / path / to / list
นอกจากนี้หากคุณต้องการแสดงรายการและไฟล์ที่ซ่อนอยู่ให้เพิ่มตัวเลือก-a (ทั้งหมด)
ls -al / path / to / list
นอกจากนี้หากคุณต้องการแสดงรายการการอนุญาตในไดเรกทอรีย่อยให้ใช้ตัวเลือก-R (เรียกซ้ำ)
ls -Rl / path / to / list
คอลัมน์แรกจะแสดงการอนุญาต (read (r), write (w), execute (x)) และการอนุญาตพิเศษ (directory (d), - (ไฟล์ปกติ)) และคอลัมน์ที่ 3 และ 4 จะแสดงไฟล์ / ไดเรกทอรีให้คุณ เจ้าของและกลุ่มตามลำดับ
apropos mode
หรือapropos permissions
ใน OS X และ Debian คุณรู้หรือไม่ว่าแพลตฟอร์ม / การกระจายที่คุณใช้อยู่ มันอาจจะเป็นคำสั่งเว็บไซต์ท้องถิ่น? คุณสามารถสคริปต์เครื่องมือเช่นการใช้และdirname
stat