Назад | Перейти на главную страницу

Каталог, который пользователь может читать, а root - нет?

Под моим домашним каталогом есть каталог под названием ".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 пользователю, и root не будет иметь проблем с чтением, записью и т.д.

Есть идеи, что происходит?

Из: 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 для передачи allow_root или allow_other, но я не уверен, как это сделать.

Конечно, может быть намного проще просто отказаться от всех инструментов с графическим интерфейсом, таких как gvfs, и смонтировать файловые системы из командной строки, где у вас будет полный контроль над тем, как что-то монтируется.

В .gvfs directory - это файловая система пользовательского пространства Gnome VFS, которая обеспечивает прямой путь к файловой системе для виртуальных файловых систем (например, удаленное монтирование samba, монтирование webdav), поэтому Gnome может передавать пути к программам, которые не поддерживают VFS при работе с удаленными файлами.

Поскольку это приложение и монтирование FUSE, оно может отказать в разрешениях root - агент, выполняющий проверки доступа в этом случае, является приложением FUSE, а не ядром.

По умолчанию gvfs демон позволяет только владельцу перемещаться по каталогу.

Это может быть несколько вещей в порядке вероятности

  • проверьте / var / log / messages (или / var / log / syslog) на предмет возможного повреждения файловой системы
  • вы используете SELinux?
  • Google предполагает, что lsattr ~ raldi / .gvfs может указывать на специальные возможности, применяемые к этому файлу.