ls: không thể truy cập .gvfs: Quyền bị từ chối


11

Bất cứ khi nào tôi chạy một ứng dụng trong thiết bị đầu cuối với quyền root (chẳng hạn như sudo gedit /etc/default/varnish), sau đó khi tôi mở một thiết bị đầu cuối khác, tôi gặp lỗi "ls: không thể truy cập .gvfs: Quyền bị từ chối" ở dòng trên cùng của thiết bị đầu cuối.

Tôi tìm thấy một giải pháp trên mạng

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

nhưng nó chỉ khắc phục vấn đề tạm thời.

Dường như tôi có hai phiên bản gvfs được gắn kết trong hệ thống của mình

  $ 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)

Tôi không biết nó có liên quan đến không, vài tháng trước tôi đã phải thay đổi quyền trong thư mục nhà của mình như

  sudo chown -R $USER:www-data

Bạn vui lòng giúp tôi sửa chữa nó?

EDIT: Sau khi tôi ngắt kết nối, /run/user/1000/gvfstôi không nhận được lỗi đó.


1
Và đó là một trong những lý do tại sao bạn không nên chạy sudovới các chương trình đồ họa.
muru


@muru Cảm ơn bạn đã liên kết, nó giải thích tốt tại sao tôi không nên chạy sudo để mở các ứng dụng đồ họa. Nhưng tôi vẫn tự hỏi tại sao tôi bắt đầu nhận được thông báo lỗi đó
kenn

Trích dẫn câu trả lời hàng đầu trong câu hỏi được liên kết: "Điều này đôi khi sẽ dẫn đến các tệp cấu hình được sở hữu bởi root và do đó bạn không thể truy cập được (khi bạn chạy chương trình như chính mình chứ không phải là root)."
muru

1
Tôi nghi ngờ tình huống đặc biệt này thực sự có thể không liên quan đến việc chạy các chương trình đồ họa với sudo thẳng . Quyền / quyền truy cập vào .gvfsthư mục người dùng luôn thú vị và (với một số người trong chúng tôi) đáng ngạc nhiên .
Eliah Kagan

Câu trả lời:


9

Chạy các ứng dụng đồ họa sudođôi khi có thể dẫn đến các vấn đề như thế này.

Giải trình

sudochạy chương trình với các đặc quyền siêu người dùng (như chạy bằng root), nhưng chương trình vẫn xem thư mục chính hiện tại là thư mục chính của bạn .

Vì vậy, khi phần mềm ghi các tệp cấu hình của nó, cuối cùng nó sẽ tạo các tệp trong thư mục chính của bạn do người dùng root sở hữu . Bạn kết thúc với các tệp mà chính bạn không thể chỉnh sửa hoặc xóa và phần mềm đang chạy vì bạn sẽ không thể sửa đổi nó, dẫn đến nhiều vấn đề hơn.

giải pháp tốt nhất là gì?

Có một sự thay thế : gksudo.

Biến thể sudo này sẽ thiết lập các biến môi trường, chẳng hạn như thư mục chính, theo cách đó giúp chạy các ứng dụng đồ họa như root an toàn hơn rất nhiều và sẽ không nhầm lẫn các chương trình tạo các tệp sở hữu gốc trong thư mục chính của bạn.

Tại sao điều này ảnh hưởng đến các ứng dụng đồ họa?

Điều này không chỉ ảnh hưởng đến các ứng dụng đồ họa, cũng không ảnh hưởng đến tất cả các ứng dụng đồ họa. Nó ảnh hưởng đến các ứng dụng lưu trữ cấu hình bên trong thư mục chính của người dùng hiện tại. Điều này chỉ phổ biến hơn trong số các ứng dụng đồ họa.

Đôi khi, các ứng dụng sẽ có thể phát hiện nếu chúng chạy bằng sudo và điều chỉnh hành vi của chúng cho phù hợp, nhưng điều này không phổ biến với các ứng dụng đồ họa thường không được chạy với sudo.

Làm cách nào để khắc phục sự cố?

Bạn sẽ cần tìm các tập tin và thư mục thuộc sở hữu gốc trong thư mục chính của bạn và xóa chúng. Theo ý kiến ​​của tôi, tốt hơn là thay đổi quyền sở hữu của họ, vì chúng không dành cho người dùng của bạn, mà là người dùng root, vì vậy có thể có những tác động không mong muốn nếu bạn chỉ thay đổi quyền sở hữu. Tất nhiên bạn có thể sao lưu chúng trong trường hợp bạn quyết định có thứ gì đó bạn muốn ở chúng sau này.

Để tìm tập tin thuộc sở hữu gốc trong thư mục nhà của bạn:

find ~ -user root

Nếu bạn vẫn gặp sự cố với một số ứng dụng (chạy với tư cách là người dùng của bạn), hãy thử khởi động lại để xóa /tmpvà mọi thứ vẫn đang chạy. Đôi khi, một số ứng dụng có thể đã làm hỏng các tệp cấu hình hiện có của chúng và cần bạn xóa tất cả cấu hình của chúng trong thư mục chính của bạn, nhưng hy vọng điều này sẽ không xảy ra với nhiều người.


Cảm ơn bạn đã giải thích. Làm thế nào tôi có thể sửa chữa nó? Hay mọi người đều có cùng một vấn đề như tôi?
kenn

3
Bằng cách sử dụng gksudothay vì sudokhi chạy các chương trình đồ họa.
thomasrutter

Vì vậy, không có gì sai trong hệ thống của tôi.
kenn

2
Có, ngoài khả năng bây giờ bạn có các tệp thuộc sở hữu gốc trong thư mục chính của bạn không nên sở hữu gốc.
thomasrutter

2

Chỉ cần cung cấp cho người dùng quyền .gvfs/và nó sẽ sửa nó.

sudo chown -R $USER.$USER ~/.gvfs/
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.