Có thể thực hiện một hệ thống đặt phòng tên của người dùng bằng cách sử dụng quyền của tập tin linux


10

Tôi có một máy chủ nhiều người dùng linux với hơn 100 người dùng trong / etc / passwd

Tôi muốn cho phép người dùng "đặt chỗ" / "dự trữ" tên theo ý thích của họ (trong trường hợp này là tên miền phụ, nhưng chi tiết đó không thành vấn đề)

Tôi đã tạo một thư mục được gọi /reservationsvà với chmod 777.

Nếu người dùng johndoe làm, touch /reservations/coolsiteanh ta chỉ ra rằng anh ta muốn "sở hữu" cái tên đó "coolsite"

"Cơ chế" nên được thiết lập sao cho,

  • johndoe có thể thay đổi suy nghĩ sau đó và rm /reservations/coolsitebỏ đặt tên đó

  • một người dùng khác không được phép touch /reservations/coolsite, vì johndoe đã yêu cầu nó trước.

  • nếu johndoe rmtập tin của mình, một người dùng khác được phép đặt nó.

  • người dùng không thể rm / rename / mv / etctập tin folks khác

  • người dùng johndoe có thể có nhiều đặt phòng bằng cách làm touch /reservations/coolsite && touch /reservations/coolsite2

Đây có phải là có thể sử dụng một số loại cơ chế quyền linux tiêu chuẩn?

Tôi ghét phải dùng đến perl vì điều này, kỹ năng perl của tôi đã trở nên rỉ sét kể từ ngày ruby ​​xuất hiện cùng với mái tóc vàng lượn sóng của cô ấy ...


Tôi không thấy gì ở đây là ngoài quy tắc. Có "coolsite" được tạo là "700" (không có quyền cho nhóm và những người khác) và chỉ người dùng + quản trị viên mới có thể làm điều gì đó với nó. Tất cả những người khác nhận được sự cho phép từ chối.
Rinzwind

Vậy thủ công hướng dẫn người dùng nhớ chmod 700 sau touch?
chiến binh người Mỹ-ninja-chiến binh

1
joshsverns Tôi nghĩ bạn có thể thực thi điều đó? (với umask). Ôi một cái tốt @perlduck
Rinzwind

Tại sao bạn không thể lập trình nó trong ruby?
đường ống

Câu trả lời:


31

Những gì bạn yêu cầu cho thư mục /reservationschính xác là cách /tmpthư mục chuẩn hoạt động:

Mọi người dùng đều có thể tạo các tệp trong đó và chỉ anh ta mới được phép xóa hoặc sửa đổi chúng. Điều này đạt được bằng tbit (hay còn gọi là bit dính ) trong các quyền. Không có người dùng cần sự cho phép đặc biệt hoặc các nhiệm vụ sau đó.

Như vậy:

chown root /reservations
chmod 1777 /reservations

là tất cả những gì bạn cần. Điều chown rootnày chỉ để ngăn người dùng (thông thường) khác loay hoay với thư mục đó. Nó không thực sự cần thiết. Đọc thêm về bit dính ở đây:

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.