ls: не вдається отримати доступ .gvfs: дозволу відмовлено


11

Щоразу, коли я запускаю програму в терміналі як root (наприклад, як sudo gedit /etc/default/varnish), згодом, коли я відкриваю інший термінал, я отримую помилку "ls: не може отримати доступ .gvfs: дозволу відмовлено" у верхній рядку терміналу.

Я знайшов рішення в мережі

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

але це вирішує проблему лише тимчасово.

Здається, у мене в моїй системі два встановлені екземпляри gvfs

  $ 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

Чи можете ви допомогти мені це виправити?

EDIT: Після відключення /run/user/1000/gvfsя не отримую цієї помилки.


1
І це одна з причин, чому вам не слід працювати sudoз графічними програмами.
муру


@muru Дякую за посилання, це добре пояснює, чому я не повинен запускати судо для відкриття графічних програм. Але мені все одно цікаво, чому я почав отримувати це повідомлення про помилку
kenn

Цитуючи головну відповідь у пов'язаному запитанні: "Іноді це призведе до того, що файли конфігурації належать root та, таким чином, недоступні для вас (коли пізніше ви запустите програму як себе, а не як root)."
muru

1
Я підозрюю, що ця конкретна ситуація насправді не може бути пов’язана із запуском графічних програм із прямим судо . Дозволи / доступ до .gvfsпапок користувачів завжди були цікавими та (для когось із нас) дивними .
Eliah Kagan

Відповіді:


10

Запуск графічних додатків із sudoчасом може призвести до подібних проблем.

Пояснення

sudoзапускає програму з привілеями суперпользователя (наприклад, запускається як root), але програма як і раніше бачить поточний домашній каталог як ваш домашній каталог.

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

Яке найкраще рішення?

Існує альтернатива: gksudo.

Цей варіант sudo створить змінні середовища, наприклад домашній каталог, таким чином, щоб зробити графічні програми як root набагато безпечнішими і не заплутати програми у створенні файлів, що належать root, у вашому домашньому каталозі.

Чому це впливає на графічні програми?

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

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

Як виправити проблему?

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

Щоб знайти root-файли у вашому домашньому каталозі:

find ~ -user root

Якщо у вас все ще виникають проблеми з деякими програмами (запустіть як ваш користувач), спробуйте перезавантажити, щоб очистити /tmpі все, що все ще працює. Інколи деякі програми можуть пошкодити існуючі конфігураційні файли, і вам потрібно видалити всю їх конфігурацію з домашнього каталогу, але, сподіваємось, для багатьох це не буде.


Дякую за пояснення. Як я можу це виправити? Або всі мають те саме питання, що і я?
kenn

3
За допомогою gksudoзамість sudoзапуску графічних програм.
thomasrutter

Так що в моїй системі немає нічого поганого.
kenn

2
Так, крім можливості тепер у вашому домашньому каталозі є файли, що належать root, які не повинні мати власність root.
thomasrutter

2

Просто дайте користувачеві дозволи для цього, .gvfs/і він повинен це виправити.

sudo chown -R $USER.$USER ~/.gvfs/
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.