Câu hỏi find: /home/user/.local/share/gvfs-metadata: Quyền bị từ chối


Khi tôi gõ một lệnh như find / -name ??.conf đầu ra bao gồm rất nhiều thư mục như:

find : /home/simmer/.local/share/gvfs-metadata : Permission Denied 

Tôi không nhận được kết quả mong muốn.

Nhưng nếu tôi sử dụng cùng một lệnh với sudo

sudo find : /home/simmer/.local/share/gvfs-metadata

Sau đó, nó cho thấy kết quả mong đợi.

tại sao tôi cần sudo đặc quyền cho điều này?


1
2017-12-24 15:34


gốc




Các câu trả lời:


Bạn không nên nhận được lỗi đó vì thư mục phải do bạn sở hữu. Tôi đoán bạn đã từng chạy các ứng dụng đồ họa với sudo.

Trong khi đăng nhập với tư cách chính bạn, hãy sửa lại quyền sở hữu (hãy luôn cẩn thận khi sử dụng chown với sudo).

sudo chown -R $USER: ~/.local/share/gvfs-metadata

Bây giờ bạn sẽ không cần sudo để tìm kiếm thư mục này.

Nói chung, lỗi cho phép với find xảy ra bởi vì bạn không có quyền đọc trên thư mục, đó là trường hợp cho nhiều thư mục hệ thống thuộc sở hữu của root. Bạn có thể dùng sudo find (rất cẩn thận trước khi thêm và hành động cho lệnh) hoặc nếu bạn không muốn tìm kiếm dưới dạng root, chỉ cần loại bỏ các lỗi thành các kết quả không bị lộn xộn bằng cách thêm vào 2>/dev/null để lệnh của bạn ...

find /some/path -some_test some_condition 2>/dev/null

1
2018-06-03 21:20





Nếu find Lệnh được thực hiện bởi một người không phải superuser, nó sẽ không thể truy cập các tệp và thư mục không thuộc quyền sở hữu của người dùng hoặc nếu các quyền "r, w, x" chưa được cấp cho người dùng đó. Nếu bạn muốn kiểm tra điều này, hãy nhập

ls -l /home/simmer/.local/share/gvfs-metadata

Lệnh này sẽ trả về một cái gì đó như:

drwx------  2 simmer simmer 12288 Jun  8 17:39 gvfs-metadata

Cột đầu tiên thể hiện các quyền được thiết lập bởi chủ sở hữu của tệp hoặc thư mục. Cột thứ ba và thứ tư đại diện cho chủ sở hữu và nhóm của tệp / thư mục tương ứng.

Nếu bạn không phải là chủ sở hữu hoặc nếu bạn không có đủ quyền như được chỉ ra bởi cột đầu tiên, find chương trình không thể truy cập chúng. Tuy nhiên, bằng cách sử dụng sudo lệnh nâng cao đặc quyền của bạn và do đó là find lệnh bây giờ được thực hiện bởi superuser, thư mục con và các thư mục con của nó bây giờ có thể được truy cập.


1
2018-06-07 18:25



Cũng như @ Zanna đã đề cập bạn không nên nhận được lỗi đó. Nó phải thuộc sở hữu của bạn - Jeremy Jackson
@Zanna Tôi đã chỉ bắt đầu viết câu trả lời trên stack-exchange và vì vậy tôi không phải là rất quen thuộc với các nghi thức. Cảm ơn vì lời khuyên. - Jeremy Jackson
:) cảm ơn bạn đã chỉnh sửa. Trông rất tuyệt. Chào mừng bạn đến với Ask Ubuntu & Stack Exchange - Zanna