web-dev-qa-db-ja.com

ls:.gvfsにアクセスできません:許可が拒否されました

ターミナルでアプリケーションをルート(Sudo gedit /etc/default/varnishなど)で実行するたびに、別のターミナルを開くと、ターミナルの最上行で「ls:アクセスできません。gvfs:許可が拒否されました」というエラーが表示されます。

ネットで解決策を見つけました

  umount /path/to/.gvfs
  rm -rf .gvfs

ただし、問題を一時的に修正するだけです。

システムにgvfsの2つのインスタンスがマウントされているようです

  $ Sudo mount |grep gvfs
    gvfsd-Fuse on /run/user/1000/gvfs type Fuse.gvfsd-Fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=33)
    gvfsd-Fuse on /home/****/.gvfs type Fuse.gvfsd-Fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)

それが関連しているかどうかはわかりませんが、数か月前にホームフォルダーのアクセス許可を次のように変更する必要がありました。

  Sudo chown -R $USER:www-data

修正を手伝ってもらえますか?

編集:/run/user/1000/gvfsをアンマウントした後、そのエラーは表示されません。

9
kenn

グラフィカルアプリケーションをSudoで実行すると、このような問題が発生する場合があります。

説明

Sudoはスーパーユーザー特権でプログラムを実行します(rootとして実行するなど)が、プログラムは現在のホームディレクトリをyourホームディレクトリとして認識します。

そのため、ソフトウェアが構成ファイルを書き込むと、rootユーザーが所有するファイルをホームディレクトリに作成することになります。自分で編集または削除できないファイルになり、ソフトウェアを実行しても変更できないため、より多くの問題が発生します。

最良の解決策は何ですか?

別の方法があります:gksudo

このSudoのバリアントは、ホームアプリケーションなどの環境変数を設定します。これにより、グラフィカルアプリケーションをrootとして実行する方がはるかに安全になり、プログラムが混乱してホームディレクトリにroot所有のファイルが作成されなくなります。

これがグラフィカルアプリケーションに影響する理由

これは、グラフィカルアプリケーションだけでなく、すべてのグラフィカルアプリケーションにも影響します。現在のユーザーのホームディレクトリ内に構成を保存するアプリケーションに影響します。これは、グラフィカルアプリケーション間でより一般的です。

アプリケーションがSudoで実行されているかどうかを検出し、それに応じて動作を調整できる場合もありますが、これは通常、Sudoで実行されることはないグラフィカルアプリケーションでは一般的ではありません。

問題の修正方法

ホームディレクトリ内でルート所有のファイルとディレクトリを見つけて削除する必要があります。私の意見では、所有者を変更するよりも削除する方が良いでしょう。なぜなら、それらはあなたのユーザーではなくルートユーザーを対象としていたからです。もちろん、後で必要なものがある場合に備えて、バックアップすることができます。

ホームディレクトリでルート所有のファイルを見つけるには:

find ~ -user root

まだ一部のアプリケーション(ユーザーとして実行)で問題が発生している場合は、再起動して/tmpおよび実行中のものをすべて消去してください。場合によっては、一部のアプリケーションが既存の構成ファイルを破損し、ホームディレクトリの構成を削除する必要があるallがありますが、うまくいかない場合があります多くのため。

7
thomasrutter