Không thể đọc tệp mặc dù trong nhóm của tôi và quyền cho đọc nhóm được đặt


14

Tôi gặp một vấn đề lạ trên máy unix / linux:

Tôi là thành viên của một nhóm, hãy gọi nó là nhóm A và một tệp nhất định (có chủ sở hữu khác) cũng thuộc nhóm A. Các quyền của tập tin đó là

-rw-rw----

Vì vậy, tôi hy vọng tôi sẽ có thể mở tệp đó, nhưng tôi thì không: Tôi sẽ nhận được thông báo lỗi "Quyền bị từ chối" khi tôi cố gắng xem nội dung của tệp (sử dụng mèo).

Vì các quyền dường như là chính xác, điều gì khác có thể gây ra điều này? Có "hạn chế" quyền hạn chế tại chỗ không? Nếu vậy, làm thế nào tôi sẽ tìm ra?


2
Điều gì về quyền thư mục?
Karlson

Nếu bạn ở trong nhiều nhóm, nhóm hiện tại của bạn có được đặt thành A không?
Code-Guru

2
@Karlson, nếu quyền của thư mục là vấn đề, bạn sẽ không thể thấy quyền của tệp ở vị trí đầu tiên.
cjm

Vui lòng chỉ cho chúng tôi đường dẫn đầy đủ và tên tệp.
jippie

Đó là trong /home/theotheruser/somefolder/bla.txt Tôi thuộc nhiều nhóm.
Lagerbaer

Câu trả lời:


8

Bạn đã đăng xuất và đăng nhập lại từ khi bạn được thêm vào nhóm A chưa?

Nếu không, các quy trình đăng nhập hiện tại của bạn sẽ chỉ có các thành viên nhóm mà nó có tại thời điểm đăng nhập, không có bất kỳ thay đổi nào kể từ đó. Và bất kỳ tiến trình con nào của lần đăng nhập đó sẽ có cùng tư cách thành viên nhóm (nghĩa là nếu bạn đã đăng nhập vào X thì mọi ứng dụng bao gồm trình giả lập thiết bị đầu cuối và trình bao của bạn)

Bạn có thể kiểm tra điều này bằng cách đăng nhập lại trên bảng điều khiển khác hoặc thông qua ssh hoặc đại loại như exec sudo -u $(id -u -n) -i(để tiêu diệt và thay thế hiệu quả lớp vỏ hiện tại bằng lớp vỏ mới - mọi quá trình nền thuộc lớp vỏ đó sẽ bị mồ côi)


Không, đó không phải là vấn đề; Tôi đã đăng xuất và đăng nhập trở lại và điều đó không giải quyết được.
Lagerbaer

3

Với NFS, nó phụ thuộc vào chế độ bảo mật mà bạn sử dụng, nhưng trong chế độ truyền thống, danh sách các nhóm mà người dùng thuộc về được gửi bởi máy khách đến máy chủ và có giới hạn về số lượng nhóm có thể được gửi (đó là 16 lần cuối tôi kiểm tra).

Vì vậy, khách hàng nói: Tôi là 1234 và nhân tiện tôi là thành viên của các nhóm 12, 13, 14 ... Nếu bạn thuộc hơn 16 nhóm, danh sách đó sẽ bị cắt ngắn và sẽ có các nhóm cho mà máy chủ không biết bạn là thành viên của nó.

Đó có lẽ là lời giải thích cho nó. Chỉ quản trị viên hệ thống của máy cục bộ và / hoặc máy từ xa mới có thể làm điều đó bằng cách thay đổi mô hình bảo mật hoặc cài đặt của máy chủ NFS hoặc bằng cách giảm số lượng nhóm bạn là thành viên.


Tôi có một cảm giác mạnh mẽ rằng đây là lý do, bởi vì nhóm tôi xuất hiện ở vị trí 19 trong đầu ra của lệnh "nhóm". Tôi sẽ hiển thị câu trả lời này cho quản trị viên hệ thống và xem nếu nó giúp. :)
Lagerbaer

Làm thế nào bạn thay đổi "mô hình bảo mật" trên NFS để giải quyết vấn đề này?
Daniel

2

Như bạn lưu ý trong một bình luận, bạn không có quyền đọc /home/username. Nhưng để đọc /home/username/path1/path2/file, bạn cần thực thi quyền cho toàn bộ đường dẫn.

Để gỡ lỗi này, hãy chạy namei -l /home/username/path1/path2/filevới tư cách là người dùng đọc tệp.


Đó là vấn đề trong trường hợp của tôi. Tôi muốn cung cấp cho người dùng quyền khác để hoạt động trên thư mục con của thư mục nhà của tôi, nhưng thư mục nhà của tôi có quyền truy cập 700, vì vậy họ đã nhận được "Quyền từ chối" cho bất kỳ lệnh nào.
Cerberus

1

Có thể là ACL. Xem

getfacl the-file

Có thể vì một số lý do, các nhóm bạn dự định tham gia không được đặt đúng. Kiểm tra với

id -a

Thế còn

namei -xl "$(readlink -f the-file)"

getfattr -dm- the-file

sudo lsattr the-file

Loại hệ thống tập tin mà nó cư trú là gì?

Bất kỳ apparmor, SELinux hoặc bất kỳ điều khiển truy cập bắt buộc nào khác được áp dụng trong hệ thống?

Bạn có chắc rằng tệp không chứa văn bản "Quyền bị từ chối", phải không ;-)?


Không, không có ACL đặc biệt, nó chỉ lặp lại những gì các cờ tiêu chuẩn nói với tôi, và id -a nói với tôi rằng tôi thuộc nhóm của tập tin đó
Lagerbaer

Điều kỳ lạ là, tôi có thể thấy các tập tin của một người dùng khác thuộc nhóm B, trong đó tôi cũng là thành viên ...
Lagerbaer

Hệ thống tập tin dường như là nfs4. namei cho tôi / và nhà thuộc về root, root. / home / tên người dùng thuộc về tên người dùng và nhóm X (trong đó tôi không phải là thành viên), phần còn lại là / home / username / path1 / path2 / file trong đó path1 thuộc về tên người dùng và nhóm X, và path2 thuộc về tên người dùng và nhóm A, trong đó tôi là thành viên.
Lagerbaer
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.