Каталог, який користувач може прочитати, але root не може?


9

Під моїм хомедіром є каталог під назвою ".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 або чогось дивного подібного. Я бачу, що в каталозі позначено не читабельний світ (і не у світі, який може бути прочитаний), але я подумав, що нічого з цього не застосовується, коли ти маєш root. Наприклад, я можу створити каталог mode-000 в / tmp та віддати його некорінному користувачеві, а root не має жодних проблем з його читанням, його написанням.

Будь-яка ідея, що відбувається?


Цікаво, що ви отримуєте ті самі симптоми, коли використовуєте sshfs як звичайний користувач, а потім намагаєтесь виконувати будь-яку операцію в точці монтажу як root. Користувач root не має дозволів взагалі переглядати точку монтування. Ви навіть не можете бачити дозволи, ls -l повертає всі знаки запитання для всіх дозволів.
GodEater

1
"Це просто проста домашня установка Ubuntu 8.10, ніяких NFS або чогось дивного подібного". Гм, запобіжник - це "щось таке дивне"
Томас,

Відповіді:


21

З: http://bugzilla.gnome.org/show_bug.cgi?id=534284

Це все прикро, але це рішення, яке прийняли запобіжники на рівні ядра (користувач, крім того, хто встановив fs, не може отримати доступ до нього, включаючи root), і ми нічого з цим не можемо зробити.

Також дивіться: https://bugs.launchpad.net/gvfs/+bug/225361

Здається, рішення полягає в тому, щоб оновити /etc/fuse.conf та включити параметр user_allow_other . Потім вам може знадобитися отримати gvfs, щоб передати enable_root або enable_other, але я не знаю, як це зробити.

Звичайно, може бути набагато простіше просто відмовитися від усіх інструментів графічного інтерфейсу, таких як gvfs, та встановити файлові системи з командного рядка, де ви повністю контролюєте, як щось встановлюється.


5

.gvfsКаталог є Gnome VFS файлової системи в просторі користувача забезпечує прямий шлях файлової системи для віртуальних файлових систем (наприклад , віддалені самби монтують, WebDAV монтує) так Гном може пройти шляху до програм, що не VFS-відомі при роботі з віддаленими файлами.

Оскільки це FUSE mount & application, він може заперечувати права на root - агент, що виконує перевірку доступу, у цьому випадку - програма FUSE, а не ядро.

За замовчуванням gvfsдемон лише дозволяє власнику перейти через каталог.


0

Це може бути кілька речей, в порядку ймовірності

  • перевірити / var / log / messages (або / var / log / syslog) на можливу пошкодження файлової системи
  • ви використовуєте SELinux?
  • google пропонує lsattr ~ raldi / .gvfs може вказувати на спеціальні можливості, застосовані до цього файлу.

Я запустив fsck на диску, і він не знайшов жодних проблем. Я не використовую SELinux. Якщо я запускаю lsattr як мій обліковий запис користувача, виходу немає. Якщо я запускаю його як root, я отримую помилку "відмовлено у дозволі".
raldi

Схоже, у Зоредаче є відповідь
Дейв Чейні
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.