Score:0

ทำไม `การอนุญาตถูกปฏิเสธ` สำหรับ `ls` และ `touch` เมื่อโฟลเดอร์มีสิทธิ์ `r` และ `w` สำหรับทุกคน

ธง ec

ฉันได้อ่าน rm: ไม่สามารถลบไดเร็กทอรี /: ปฏิเสธการอนุญาตคำตอบที่บันทึกไว้สำหรับคำถามที่ไม่มีการให้สิทธิ์สำหรับไดเร็กทอรี บิตไดเร็กทอรีที่ถูกจำกัด ดังนั้นฉันจึงตัดสินใจเรียนรู้ให้ลึกขึ้นและสะดุดกับสิ่งต่อไปนี้ซึ่งฉันไม่สามารถหาคำตอบได้จากการค้นเว็บ:

แตะ /สื่อ/ไดรฟ์/1/2
สัมผัส: ไม่สามารถสัมผัส '/media/drive/1/2': ปฏิเสธการอนุญาต
ls /media/ไดรฟ์/1
ls: ไม่สามารถเข้าถึง '/media/drive/1/1': ปฏิเสธการอนุญาต

sudo ls -la /media/drive/1
รวม 0
drw-rw-rw- 2 อเล็กซ์ อเล็กซ์ 60 ต.ค. 5 08:36 .
drwxrwxrwx 4 รูท 80 ต.ค. 5 08:36 ..
-rw-rw-r-- 1 อเล็กซ์ อเล็กซ์ 0 5 ต.ค. 08:36 1

BTW: ทำไมรวมเป็น 0?

หน้าข้อมูล (ข้อมูล '(coreutils) สิทธิ์ของไฟล์'):

  1. สิทธิ์ในการอ่านไฟล์. สำหรับไดเร็กทอรี หมายถึง อนุญาตให้แสดงรายการเนื้อหาของไดเร็กทอรี
  2. อนุญาตให้เขียน (เปลี่ยน) ไฟล์ สำหรับไดเร็กทอรีนี้ หมายถึงการอนุญาตให้สร้างและลบไฟล์ในไดเร็กทอรี
  3. อนุญาตให้เรียกใช้ไฟล์ (เรียกใช้เป็นโปรแกรม) สำหรับ ไดเร็กทอรี ซึ่งหมายถึงการอนุญาตให้เข้าถึงไฟล์ใน ไดเรกทอรี

การค้นหาทางอินเทอร์เน็ตโดยทั่วไปจะบอกเหมือนกัน โฟลเดอร์ 1 มีทั้งอ่านและเขียน ทำไมการดำเนินการจึงล้มเหลว สำหรับ x สิทธิ์ในการเข้าถึง อะไร เข้าไป หมายถึงที่นี่?

Martian2020 avatar
ec flag
@mook765 มันตอบโจทย์สำหรับพฤติกรรมที่เกิดขึ้นจริง แต่ไม่ใช่ว่าทำไมต้องใช้ `x` ทั้งๆที่เอกสารบอกเป็นอย่างอื่นและความคิดเห็นที่บอกฉันใน UNIX ก่อนหน้านี้ `x` จำเป็นสำหรับ `cd` ไม่ใช่ `ls`
Martian2020 avatar
ec flag
@muru โปรดดูความคิดเห็นที่ mook765
Martian2020 avatar
ec flag
@muru มองมาที่ฉันตอนนี้ (Ubuntu 20) `x` ซ้ำซ้อนเนื่องจากไม่ได้รับอนุญาตด้วยตัวเอง (สำหรับไดเรกทอรี)
muru avatar
us flag
@ Martian2020 ได้เลย แม้แต่ใน Ubuntu 20.04 `x` จำเป็นต้องป้อนไดเร็กทอรีและเข้าถึงทุกสิ่งในไดเร็กทอรี คำสั่ง `ls` ของคุณน่าจะเป็นนามแฝงที่รัน `ls -l` จริง ๆ ซึ่งพยายามตรวจสอบแต่ละรายการในไดเร็กทอรี ซึ่งไม่สามารถทำงานได้หากไม่มีสิทธิ์ `x` เว้นแต่คุณจะรูท
Martian2020 avatar
ec flag
@muru บางทีฉันอาจไม่ได้ทำให้ตัวเองชัดเจน ให้ฉันใช้ถ้อยคำใหม่: กรณีการใช้งานใด ๆ สำหรับ -x +r/w? หรือย้อนกลับ +x -rw?
muru avatar
us flag
`x +r/w` ไม่มีประโยชน์มากนัก `+x, -rw` เป็นเรื่องปกติเมื่อคุณต้องการให้ผู้ใช้เข้าถึงไฟล์หรือไดเร็กทอรีย่อยเฉพาะเจาะจง แต่อย่างอื่นจะมองไม่เห็นหรือแก้ไขสิ่งอื่นๆ ในไดเร็กทอรี
vanadium avatar
cn flag
โฟลเดอร์ `1` ไม่แสดงเป็นโฟลเดอร์ในเอาต์พุต ls ของคุณ อาจถึงเวลาตรวจสอบระบบไฟล์อย่างละเอียด
Martian2020 avatar
ec flag
@muru ขอบคุณ การอ่านเกี่ยวกับไดเร็กทอรีไอโหนดที่มี (เพียงแค่ชื่อและตัวชี้) ก็ช่วยได้เช่นกัน ฉันหวังว่าข้อมูล/หน้าคนจะได้รับข้อมูลมากกว่านี้เล็กน้อยเกี่ยวกับสิ่งเหล่านี้ปัญหาหนึ่งทำให้ฉันงง: ฉันพยายาม `mv` ไฟล์ไปยังโฟลเดอร์ด้วย `+rw -x`, `perm ปฏิเสธ` - แต่ฉันได้เขียนไปยังไดเร็กทอรี ระบบสามารถเขียนตัวชี้ inode ไฟล์พร้อมกับชื่อไปยังไดเร็กทอรีได้ เหตุผลใดที่มันไม่ทำงานอย่างนั้น? กรณีการใช้งานคือคุณสามารถวางไฟล์ลงในไดเร็กทอรี แต่ไม่สามารถเข้าถึง / เปลี่ยนแปลงได้ในภายหลัง
muru avatar
us flag
คิดว่า `mv foo bar/` เป็น `mv foo bar/foo` => หากไม่มี `x` บน `bar` ก็จะไม่สามารถเข้าถึง `bar/foo` ได้ (แม้ว่าจะไม่มีอยู่ก็ตาม) ดังนั้น ไม่สามารถดำเนินการได้
Martian2020 avatar
ec flag
@muru ดังนั้นการนำไปใช้จึงขึ้นอยู่กับ? เนื่องจากการเห็นระบบ `read` สามารถตรวจสอบไฟล์ชื่อเดียวกันที่มีอยู่แล้วได้
muru avatar
us flag
ไม่ ฉันไม่ทราบถึงการใช้งานใด ๆ ที่จะอนุญาต แน่นอนว่าคุณสามารถตรวจสอบว่ามีไฟล์อยู่หรือไม่ แต่คุณยังไม่สามารถเข้าถึงเส้นทาง `bar/foo` โดยไม่มี `x` บนแถบ

โพสต์คำตอบ

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