web-dev-qa-db-ja.com

ユーザーが読み取ることができるが、ルートはできないディレクトリ?

ホームディレクトリの下に「.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

ただし、ルートとして「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

これはUbuntu8.10の単純なホームインストールであり、NFSやそのような奇妙なものはありません。ディレクトリは、誰もが読めない(そして、world-x-ableでない)とマークされているようですが、rootの場合は、そのどれも当てはまらないと思いました。たとえば、/ tmpにmode-000ディレクトリを作成して、root以外のユーザーに渡すことができます。rootは、読み取り、書き込みなどに問題はありません。

何が起こっているのでしょうか?

9
raldi

差出人: http://bugzilla.gnome.org/show_bug.cgi?id=534284

これはすべて残念なことですが、カーネルレベルでFuseの人々によって下された決定(fsをマウントしたユーザー以外のユーザーはrootを含めてアクセスできません)であり、私たちにできることは何もありません。

参照: https://bugs.launchpad.net/gvfs/+bug/225361

解決策は、 / etc/Fuse.conf を更新し、user_allow_otherオプションを有効にすることのようです。次に、gvfsを取得してallow_rootまたはallow_otherを渡す必要がある場合もありますが、これを行う方法がわかりません。

もちろん、gvfsなどのすべてのGUIツールをあきらめて、何かをマウントする方法を完全に制御できるコマンドラインからファイルシステムをマウントする方がはるかに簡単な場合があります。

21
Zoredache

.gvfsディレクトリは、Gnomeがリモートファイルの操作時にVFSに対応していないプログラムへのパスを渡すことができるように、仮想ファイルシステム(リモートsambaマウント、webdavマウントなど)に直接ファイルシステムパスを提供するGnome VFSユーザースペースファイルシステムです。

これはFuseのマウントとアプリケーションであるため、rootへのアクセス許可を拒否できます。この場合、アクセスチェックを実行するエージェントはFuseアプリケーションであり、カーネルではありません。

デフォルトでは、gvfsデーモンは、所有者がディレクトリをトラバースすることのみを許可します。

5
MikeyB

可能性の高い順に、いくつかの可能性があります

  • / var/log/messages(または/ var/log/syslog)でファイルシステムの破損の可能性を確認してください
  • sELinuxを使用していますか?
  • グーグルは、lsattr〜raldi /.gvfsがそのファイルに適用されている特別な機能を示している可能性があることを示唆しています。
0
Dave Cheney