Thư mục mà người dùng có thể đọc, nhưng root không thể?


9

Có một thư mục bên dưới homedir của tôi được gọi là ".gvfs". Là tài khoản người dùng thông thường của tôi, tôi có thể đọc nó tốt:

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

Tuy nhiên, với tư cách là root tôi không thể "ls" hay thậm chí là "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

Và, chỉ để đảm bảo:

# echo $UID $EUID
0 0

Đây chỉ là một bản cài đặt đơn giản tại nhà của Ubuntu 8.10, không có NFS hay bất cứ thứ gì kỳ lạ như thế. Tôi thấy rằng thư mục được đánh dấu là không thể đọc được (và không thể thế giới x), nhưng tôi nghĩ không có thư mục nào được áp dụng khi bạn root. Ví dụ, tôi có thể tạo một thư mục mode-000 trong / tmp và cung cấp cho người dùng không phải root và root không gặp khó khăn gì khi đọc nó, viết nó, bất cứ điều gì.

Có ai biết cái gì đang xảy ra không?


Thật thú vị, bạn nhận được các triệu chứng tương tự khi sử dụng sshfs như một người dùng thông thường, và sau đó thử bất kỳ loại hoạt động nào trên điểm gắn kết là root. Người dùng root không có quyền xem điểm gắn kết nào cả. Bạn thậm chí không thể nhìn thấy các quyền, ls -l trả về tất cả các dấu hỏi cho tất cả các bit quyền.
GodEater

1
"Đây chỉ là một bản cài đặt đơn giản của Ubuntu 8.10, không có NFS hay bất cứ thứ gì kỳ lạ như thế". Uhm, cầu chì "thứ gì đó kỳ lạ như thế"
Thomas

Câu trả lời:


21

Từ: http://ormszilla.gnome.org/show_orms.cgi?id=534284

Điều này thật đáng tiếc, nhưng đó là quyết định của những người có cầu chì ở cấp hạt nhân (người dùng khác với người đã gắn fs không thể truy cập nó, kể cả root) và chúng tôi không thể làm gì được.

Xem thêm: https://bugs.launchpad.net/gvfs/+orms/225361

Giải pháp có vẻ là cập nhật /etc/fuse.conf của bạn và bật tùy chọn user_allow_other . Sau đó, bạn cũng có thể cần phải có gvfs để vượt qua allow_root hoặc allow_other, nhưng tôi không chắc làm thế nào để làm điều này.

Tất nhiên, có thể dễ dàng hơn nhiều khi chỉ cần từ bỏ tất cả các công cụ GUI như gvfs và gắn hệ thống tệp của bạn từ dòng lệnh nơi bạn có toàn quyền kiểm soát chính xác cách thức một cái gì đó được gắn kết.


5

Thư mục .gvfslà hệ thống tệp không gian người dùng Gnome VFS cung cấp đường dẫn hệ thống tệp trực tiếp cho các hệ thống tệp ảo (ví dụ: gắn kết samba từ xa, gắn kết webdav) để Gnome có thể chuyển đường dẫn đến các chương trình không nhận biết VFS khi hoạt động trên các tệp từ xa.

Vì nó là một ứng dụng và ứng dụng FUSE, nó có thể từ chối quyền truy cập vào root - tác nhân thực hiện kiểm tra truy cập trong trường hợp này là ứng dụng FUSE, không phải kernel.

Theo mặc định, gvfstrình nền chỉ cho phép chủ sở hữu duyệt qua thư mục.


0

Nó có thể là một vài điều, theo thứ tự khả năng

  • kiểm tra / var / log / message (hoặc / var / log / syslog) để biết hệ thống tập tin có thể bị hỏng
  • bạn đang sử dụng SELinux phải không?
  • google cho thấy lsattr ~ raldi / .gvfs có thể chỉ ra các khả năng đặc biệt đang được áp dụng cho tệp đó.

Tôi đã chạy fsck trên đĩa và nó không tìm thấy bất kỳ vấn đề nào. Tôi không sử dụng SELinux. Nếu tôi chạy lsattr như tài khoản người dùng của tôi, không có đầu ra. Nếu tôi chạy nó với quyền root, tôi sẽ gặp lỗi "quyền bị từ chối".
raldi

Có vẻ như Zoredache có câu trả lời
Dave Cheney
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.