ไดเรกทอรีที่ผู้ใช้สามารถอ่านได้ แต่รูทไม่สามารถทำได้?


9

มีไดเรกทอรีอยู่ใต้ homedir ของฉันชื่อ ".gvfs" ในฐานะบัญชีผู้ใช้ทั่วไปของฉันฉันสามารถอ่านได้:

~ $ ls -lart ~raldi/.gvfs
total 4
dr-x------  2 raldi raldi    0 2009-05-25 22:17 .
drwxr-xr-x 60 raldi raldi 4096 2009-05-25 23:08 ..
~ $ ls -d ~raldi/.gvfs
dr-x------ 2 raldi raldi 0 2009-05-25 22:17 /home/raldi/.gvfs

อย่างไรก็ตามในฐานะที่เป็น root ฉันไม่สามารถ "ls" หรือแม้แต่ "ls -d" ได้:

# ls ~raldi/.gvfs
ls: cannot access /home/raldi/.gvfs: Permission denied
# ls -d ~raldi/.gvfs
ls: cannot access /home/raldi/.gvfs: Permission denied

และเพื่อให้แน่ใจว่า:

# echo $UID $EUID
0 0

นี่เป็นเพียงการติดตั้งในบ้านอย่างง่ายของ Ubuntu 8.10 ไม่มี NFS หรืออะไรแปลก ๆ อย่างนั้น ฉันเห็นว่าไดเรกทอรีดังกล่าวมีเครื่องหมายว่าไม่สามารถอ่านได้ (และไม่สามารถใช้กับโลกได้) แต่ฉันคิดว่าไม่มีสิ่งใดที่นำไปใช้เมื่อคุณรูต ตัวอย่างเช่นฉันสามารถสร้างไดเรกทอรี mode-000 ใน / tmp และมอบให้กับผู้ใช้ที่ไม่ใช่รูทและรูทไม่มีปัญหาในการอ่านเขียนเขียนอะไรก็ได้

ความคิดใด ๆ ที่เกิดขึ้น?


ที่น่าสนใจคุณจะได้รับอาการแบบเดียวกันเมื่อใช้ sshfs ในฐานะผู้ใช้ปกติแล้วพยายามดำเนินการใด ๆ บนจุดเมานท์เป็นรูท ผู้ใช้รูทไม่มีสิทธิ์ในการดูจุดเมานท์เลย คุณไม่สามารถเห็นการอนุญาต ls -l ส่งคืนเครื่องหมายคำถามทั้งหมดสำหรับบิตสิทธิ์ทั้งหมด
GodEater

1
"นี่เป็นเพียงการติดตั้งในบ้านอย่างง่ายของ Ubuntu 8.10 ไม่มี NFS หรืออะไรแปลก ๆ อย่างนั้น" Uhm ฟิวส์เป็น "บางสิ่งบางอย่างที่แปลกเช่นนั้น"
โทมัส

คำตอบ:


21

จาก: http://bugzilla.gnome.org/show_bug.cgi?id=534284

ทั้งหมดนี้เป็นเรื่องที่โชคร้าย แต่เป็นการตัดสินใจโดยคนฟิวส์ที่ระดับเคอร์เนล (ผู้ใช้คนอื่นที่ไม่ใช่คนที่เมานท์ fs ไม่สามารถเข้าถึงได้รวมถึงรูท) และไม่มีอะไรที่เราสามารถทำได้

ดูเพิ่มเติมที่: https://bugs.launchpad.net/gvfs/+bug/225361

ดูเหมือนว่าโซลูชันจะอัปเดต/etc/fuse.confของคุณและเปิดใช้งานตัวเลือกuser_allow_other คุณอาจต้องได้รับ gvfs เพื่อส่งผ่าน allow_root หรือ allow_other แต่ฉันไม่แน่ใจว่าจะทำอย่างไร

แน่นอนว่ามันอาจง่ายกว่ามากที่จะยอมแพ้กับเครื่องมือ GUI ทั้งหมดเช่น gvfs และติดตั้งระบบไฟล์ของคุณจากบรรทัดคำสั่งที่คุณสามารถควบคุมได้อย่างสมบูรณ์ว่ามีบางสิ่งที่ติดตั้งอยู่


5

.gvfsไดเรกทอรีเป็น Gnome วีเอฟเอ userspace ระบบแฟ้มที่ให้เส้นทางระบบแฟ้มโดยตรงสำหรับระบบไฟล์เสมือน (เช่นม้า samba ระยะไกล WebDAV ม้า) เพื่อให้คำพังเพยสามารถผ่านเส้นทางไปยังโปรแกรมที่ไม่ VFS ทราบเมื่อปฏิบัติการในไฟล์ระยะไกล

เนื่องจากเป็นตัวยึด FUSE & แอปพลิเคชันจึงสามารถปฏิเสธสิทธิ์ในการรูท - เอเจนต์ที่ทำการตรวจสอบการเข้าถึงในกรณีนี้คือแอปพลิเคชัน FUSE ไม่ใช่เคอร์เนล

โดยค่าเริ่มต้นgvfsdaemon อนุญาตให้เจ้าของสำรวจผ่านไดเรกทอรีเท่านั้น


0

มันอาจเป็นเรื่องเล็ก ๆ น้อย ๆ ตามลำดับโอกาส

  • ตรวจสอบ / var / log / messages (หรือ / var / log / syslog) เพื่อหาความเสียหายของระบบไฟล์
  • คุณใช้ SELinux หรือไม่
  • google แนะนำ lsattr ~ raldi / .gvfs อาจระบุความสามารถพิเศษที่ใช้กับไฟล์นั้น

ฉันวิ่ง fsck บนดิสก์และไม่พบปัญหาใด ๆ ฉันไม่ได้ใช้ SELinux หากฉันรัน lsattr เป็นบัญชีผู้ใช้ของฉันจะไม่มีผลลัพธ์ หากฉันเรียกใช้เป็นรูทฉันได้รับข้อผิดพลาด "สิทธิ์ถูกปฏิเสธ"
raldi

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