Quyền nhóm cho phép, nhưng vẫn bị từ chối cấp phép


43

Tôi có một phân vùng ext4 và tôi đã đặt chủ sở hữu nhóm cho tất cả các thư mục con thành nhóm của tôi:

# chgrp -R mygroup /mount/abc
# chmod -R g+swrx /mount/abc

Người dùng của tôi là một phần của nhóm đó. Bên trong phân vùng đó là một thư mục thuộc sở hữu của người dùng 'không ai' và bây giờ bởi nhóm 'mygroup'. Người dùng của tôi là một phần của 'mygroup'. Đây là một ls -l:

myuser@host:/mount/abc/folder$ ls -l
drwxr-sr-x 2 nobody      mygroup      4096 Apr 25 12:08 ./
drwxrwsrwx 6 nobody      mygroup      4096 Apr 24 07:57 ../
-rw-r-xr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

myuser@host:/mount/abc/folder$ groups myuser
myuser : mygroup {... a list of other groups also...} 

myuser@host:/mount/abc/folder$ rm test.png 
rm: remove write-protected regular file ‘test.png’? y
rm: cannot remove ‘test.png’: Permission denied

myuser@host:/mount/abc/folder$ touch test.txt
touch: cannot touch ‘test.txt’: Permission denied

Lưu ý rằng tôi không thể xóa hoặc tạo một tệp thuộc sở hữu của một nhóm mà người dùng của tôi là một phần của.

Tôi đoán tôi không hoàn toàn hiểu cách các nhóm làm việc. Tôi nghĩ nếu bạn là một phần của một nhóm thì bạn sẽ thừa hưởng các quyền của nhóm đó. Tôi có làm điều gì sai?

Cảm ơn


Có vẻ như bộ ba quyền là thế giới nhóm chủ sở hữu. Ở trên bạn có thể thấy drwxr-sr-x cho thư mục. Vì vậy, sự cho phép của nhóm là rs. Có vẻ như chmod -R đã không đặt đệ quy các quyền thành rwx. Khi tôi lật bit w cho phép nhóm của thư mục, nó hoạt động.
Hỗn loạn

Câu trả lời:


69

Gần đây bạn có thêm người dùng đó vào nhóm đó mà không đăng xuất / đăng nhập giữa không? Sau đó, "nhóm" sẽ hiển thị nhóm nhưng người dùng chưa có quyền của nhóm.

Bạn có thể hiển thị các nhóm hiệu quả của mình bằng cách sử dụng

$ id

Ví dụ: nếu tôi thêm người dùng của mình psvào nhóm faxvà sau đó nhập

$ id

nó không hiển thị nhóm fax, nhưng

$ groups ps

cho thấy fax.

Làm sucho người dùng của riêng bạn cung cấp cho bạn liên kết nhóm mới:

$ su ps
$ id

Đầu ra bây giờ cũng chứa fax.


1
Điều này thực sự hữu ích để biết. Đặc biệt là phần 'sudo <tên người dùng>'.
Hỗn loạn

3
đăng nhập / đăng xuất quá rõ ràng đến nỗi tôi đã bỏ lỡ vấn đề, cảm ơn nhiều bạn!
nicolallias 18/03/2015

1
@ peschü Tôi có sudovà sử dụng nó thường xuyên. Lỗi tôi chỉ cho bạn là phàn nàn rằng lệnh ubuntu(tức là tên người dùng) không phải là lệnh được công nhận. Tôi không nghĩ đề xuất của bạn là đúng về mặt cú pháp - có lẽ nó hoạt động trong trường hợp của bạn bởi vì đó pscũng là một lệnh cũng như tên người dùng.
beldaz

1
@beldaz ôi không! Bạn đúng rồi! cú pháp chính xác nó là su <username>. Tôi đã chỉnh sửa bài viết.
peschü

1
chết tiệt đăng xuất cũ / đăng nhập lại làm việc mỗi lần.
Steampunkery

9

Phương pháp mà bạn đã sử dụng dường như là chính xác. Bây giờ tôi chỉ cố gắng sao chép nó, và nó hoạt động tốt.

Tôi không chắc chắn nếu có một lỗi đánh máy, nhưng có một vấn đề nhỏ với lệnh. Không cần phải có "mygroup" được đề cập trong đó. Các công việc sau đây

# chmod -R g+swrx /mount/abc

Thậm chí, bạn có thể loại bỏ sbit, chỉ cần làm g+rwx. Sau khi bạn đã thay đổi quyền, và bạn làm như vậy ls -l, nó sẽ hiển thị các đặc quyền có liên quan.


2
Tôi đã xóa lỗi đánh máy với tên nhóm. Thư mục có quyền wrx trên đó khi bạn thực hiện ls -l và nó thuộc sở hữu của không ai: mygroup. Mặc dù myuser là một phần của mygroup, myuser vẫn không thể tạo / xóa các tập tin. Tôi hy vọng điều đó đúng.
Hỗn loạn

3

Bạn không thể xóa tệp vì nhóm mygroupkhông có quyền ghi trên tệp test.pngcũng như thư mục. Để các thao tác ghi hoạt động trên tệp, các quyền của tệp sẽ giống như:

-rw-rwxr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

Nếu bạn xem kỹ hơn định dạng cho phép

duuugggooo

Ba trình giữ chỗ đầu tiên uuulà người dùng r ead, w rite và e x ecute. Ba giữ chỗ tiếp theo ggglà cho nhóm và ooocho những người khác. Trong đoạn trích được đăng bởi nhóm OP đang thiếu sự cho phép của nghi thức w .


2

Để thêm vào câu trả lời được chấp nhận (vì tôi chưa thể nhận xét):

Nếu bạn sử dụng phần mềm như BitVise để tạo kết nối SSH đến máy chủ của mình, chỉ cần đóng và mở lại thiết bị đầu cuối sẽ không được tính là đăng nhập & đăng xuất. Nó sẽ làm những việc như tải lại của bạn ~/.bashrc, nhưng không thực hiện cập nhật nhóm thực tế (nếu bạn đã thêm nhóm trong phiên "đăng nhập" của mình). Để điều này có hiệu lực, bạn sẽ phải đăng xuất hoàn toàn và đăng nhập lại bằng khóa SSH / thông tin đăng nhập.


2

Các thư mục cần x bit set (đối với thư mục bit được xem là bit tìm kiếm) để mở. Vì vậy, tôi sử dụng cây để tôi chỉ có thể nhận được bộ thư mục và tránh cơn ác mộng có tất cả các tệp được đặt làm tệp thực thi (tùy chọn cho cây là -d List directories only.):

sudo tree -faid /mount/abc | xargs -L1 -I{} sudo chmod 755  "{}"

Cảnh báo!!! bạn nên cân nhắc điều này:

  • sử dụng chmod hoặc chown đệ quy trên /thư mục gốc hoặc thư mục hệ thống sẽ phá hủy hệ điều hành của bạn (thực sự mọi thứ đệ quy trên /thư mục hoặc thư mục hệ thống đều nguy hiểm)

  • Đây không phải là một thực tiễn bảo mật tốt để đặt hàng loạt quyền như thế


1
Cảm ơn rất nhiều! Dòng chữ "Thư mục cần x bit set" đã giải quyết vấn đề của tôi! Tôi đã "sudo chmod g + x <Parent dir path>" và nó đã hoạt động.
kinORnirvana
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.