Tại sao tôi không thể xóa một tệp nơi tôi có quyền ghi nhóm?


26

Tôi có một tệp với các quyền sau:

root:datachmodđặt thành 775.

Người dùng bình thường của tôi, hãy gọi anh ấy là boby, trong datanhóm.

Tại sao tôi không thể xóa tệp với người dùng boby?

 rwxrwxr-x 18 dữ liệu gốc 4096 2011-12-30 22:02 lưu trữ
 Người dùng của tôi đang ở trong dữ liệu nhóm nhưng không thể ghi vào bộ lưu trữ

Câu trả lời:


32

Bởi vì bằng cách xóa một tập tin, bạn không chỉ sửa đổi tập tin mà còn sửa đổi thư mục của nó.

Vì vậy, nếu tập tin của bạn là:

rwxrwxr-x

Bạn sẽ có thể làm:

cp /dev/null <filename>

Nhưng nếu quyền thư mục của bạn là:

rwxr-xr-x  root  data  <directory name>

Sau đó hệ thống sẽ ngăn bạn xóa tập tin.


Tôi có drwxrwxr-x trong thư mục, tôi nghĩ nó có liên quan đến d ở phía trước
danidacar

2
@ user56301 d chỉ ra rằng tập tin này là một thư mục. Quyền sở hữu của thư mục là gì?
Karlson

dữ liệu gốc drwxrwxr-x 18
danidacar

Hãy thử chạy như người dùng như bobysau:cd <directory> ; touch test_file ; rm test_file
Karlson

@ user56301 bạn có thể tạo một tập tin trong thư mục đó không? nếu bạn không thể, thì bạn chắc chắn không thể xóa một tập tin ở đó.
Rich Homolka

12

Xóa tệp dựa trên perm thư mục, không phải perms tệp (*).

Bạn có quyền ghi trên thư mục chứa tệp không?

(*) Hãy cẩn thận, bạn có thể có một thư mục nơi bạn thực thi rằng chỉ chủ sở hữu của tệp có thể xóa nó. Điều này rất hữu ích cho các thư mục tạm thời.


Cũng có một cái nhìn ở đây: superuser.com/questions/784952/ , nơi tương tự được thảo luận.
Meetai.com 27/05/2015

1

Nếu thư mục chứa không cho phép người dùng bobyhoặc datanhóm ghi vào nó, thì điều đó sẽ giải thích hành vi này.


2
Vì vậy, toàn bộ đường dẫn cần sự cho phép của nhóm? Nó hoạt động như thế.
danidacar

1
@user: Không phải toàn bộ đường dẫn - chỉ thư mục mẹ trực tiếp của tệp. Bạn chỉ sửa đổi nội dung của thư mục. Các cao hơn các bậc cha mẹ không có vấn đề gì cả .
grawity

Tôi cập nhật câu trả lời
danidacar

1
Điều này là không đúng sự thật. Bạn chỉ cần viết perms trên thư mục chứa. Các perm có thể là bất kỳ người dùng, nhóm hoặc người nào khác, nó không phải là perms nhóm cho phép bạn.
Rich Homolka

@Rich: AFAIK, chỉ có một bộ được chọn. Nếu bạn là chủ sở hữu, hệ thống sẽ chỉ kiểm tra 'chủ sở hữu', chứ không phải 'nhóm' hay 'người khác'. Nếu bạn ở trong nhóm, hệ thống sẽ không kiểm tra 'perm của người khác. ( touch foo; chmod 6 foo; ls -l foo; cat foo)
grawity

1

Tôi đã thử điều tương tự, và gặp vấn đề tương tự.

Bắt đầu một phiên thiết bị đầu cuối mới vấn đề. Điều này có thể đạt được bằng cách:

  1. Đăng xuất và đăng nhập lại
  2. Chuyển đến một trong 6 tty (Ctrl + Alt + F1-6) (Lưu ý: Ctrl + Alt + F7 là phiên GUI của bạn)
  3. sử dụng su bobyđể bắt đầu một phiên mới cho người dùng boby.

Chúc mừng!


Anh ta đề cập rằng anh ta đã đăng nhập như boby
Luke Luke REINSTATE MONICA

Anh ta cần phải đăng nhập lại vì boby- phiên cũ dường như đã cũ và không phản ánh sự thay đổi của hiệp hội nhóm.
Đây là Chó sói

1

Tôi cá là tập tin bạn đang cố xóa là trong / tmp.

Xem Linux - thành viên nhóm không thể xóa tệp với quyền rw

/ tmp thường có bộ chế độ "dính" hay còn gọi là "hạn chế xóa" (o + t). Với chế độ này được đặt, chỉ chủ sở hữu của tệp có thể di chuyển hoặc xóa các tệp trong thư mục đó bất kể mọi quyền.

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.