Hành vi cho phép kỳ lạ linux


0

Trên hệ thống CentOS7, tôi đã cài đặt samba để tạo chia sẻ cho các máy khách windows bằng các bước sau:

mkdir /samba/myShare

Sau đó tôi xác định /samba/myShare như thư mục chia sẻ của tôi thông qua smb.conf tập tin. Sau đó, tôi đã làm các bước sau:

chmod 777 /samba/myShare #(drwxrwxrwx)
mkdir /samba/myShare/myFolder
chmod 774 /samba/myShare/myFolder #(drwxrwxr--)

Bây giờ tôi nghĩ rằng myFolder thư mục sẽ được bảo vệ chống lại việc thay đổi tên hoặc xóa nó thông qua người dùng Windows bằng cách chỉ cấp quyền đọc cho "người dùng khác" nhưng thực tế không phải vậy. Các thư mục chính nó vẫn có thể viết. Sau đó, tôi đã tìm kiếm nó và đến mức thư mục vẫn có thể ghi được vì là một thư mục con, nó lấy các quyền từ thư mục mẹ của nó, đó là /samba/myShare trong trường hợp của tôi. Nhưng bây giờ đến điều kỳ lạ làm tôi bối rối rất nhiều:

  • Khi tôi làm một chmod 773 /samba/myShare/myFolder ( drwxrwx-wx ) Tôi không thể thay đổi hoặc xóa thư mục qua Windows nữa. Ai đó có thể vui lòng giải thích những gì này là tất cả về?
  • Tại sao tôi có thể xóa và thay đổi myfolder thông qua máy khách Windows khi tôi đặt quyền drwxrwxr-- và không thể xóa hoặc thay đổi nó khi tôi đặt quyền drwxrwx-wx?

Các mục trong smb.conf có thể hữu ích:

[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
map to guest = bad user`
`[myShare]
comment = myShare
path = /samba/myShare
public = yes
writeable = yes

Ồ vâng: Tôi biết rằng việc thiết lập quyền 777 không phổ biến lắm nhưng điều này chỉ để thử nghiệm.

Câu trả lời:


0

Trong Unix xóa hoặc đổi tên tệp / thư mục là một hành động trên thư mục mẹ của nó. Các cờ truy cập áp dụng cho inode được chỉ theo tên.


Nghe có vẻ rõ ràng với tôi nhưng thực tế là việc đặt quyền cho (drwxrwxr--) cho phép tôi xóa và đổi tên thư mục nhưng (drwxrwx-wx) thì không, làm tôi bối rối. Nếu đó là sự thật những gì bạn đã viết thì thay đổi này sẽ không ảnh hưởng gì đến điều này vì tôi đã không thay đổi bất cứ điều gì trong thư mục mẹ. Sửa lỗi cho tôi nếu tôi sai.
Tecbill

Nếu thư mục không thể đọc được các lệnh nên xóa, nó không thể truy cập vào các nút của tệp / thư mục con và do đó không thể làm trống nó. Vì vậy, nếu thư mục không trống, bạn không thể xóa nó trên Linux, ngay cả với rm -rf (bạn vẫn có thể đổi tên nó). Nếu nó trống thì nó có thể xóa được.
xenoid

Nhận xét thực sự tốt về điểm đó với thư mục trống, tôi không biết điều đó, cảm ơn rất nhiều !!!
Tecbill
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.