Tôi muốn tạo một người dùng chỉ có thể làm một việc: thông qua ssh chỉ định một tập lệnh (và đối số dòng lệnh cho tập lệnh) nằm trong một thư mục cụ thể (vì mục đích của câu hỏi này, chúng ta hãy gọi nó /local/remote_only_scripts/foo
) và để tập lệnh đó thực thi và trả lại đầu ra của nó.
Để rõ ràng một số ví dụ về những điều tôi không muốn người dùng có thể làm:
- Đăng nhập cục bộ vào tài khoản. Ứng dụng đăng nhập là
/bin/login
. Nó không phải là một tập lệnh trong/local/remote_only_scripts/foo
thư mục, do đó người dùng không nên gọi. - Đăng nhập từ xa vào tài khoản. Một lần nữa đăng nhập (là những gì được gọi bởi ssh?) Không phải là một tập lệnh trong thư mục có liên quan.
- Liệt kê nội dung của thư mục. ls là trong
/bin/ls
. Nó không phải là một kịch bản trong thư mục thích hợp. - Chỉnh sửa một tập tin trong thư mục đó. emacs, vi, gedit hầu hết các trình soạn thảo khác không phải là tập lệnh trong directoy đó.
- Xem nội dung của một tập tin trong thư mục đó.
- Thực hiện một tập tin trong thư mục mà anh ta không có quyền thực thi.
Lưu ý rằng đây là những ví dụ có nhiều hành động khác mà tôi không muốn người dùng có thể thực hiện. Khi xem xét một hành động, hãy hỏi "điều này có được thực hiện bởi một kịch bản /local/remote_only_scripts/foo
không?" Nếu câu trả lời là không, người dùng sẽ không thể làm điều đó. Nếu câu trả lời là có thì người dùng sẽ có thể làm điều đó.
PS: Hãy để tôi làm rõ ý của tôi bằng cách "thêm người dùng". Tôi không có nghĩa là thêm người dùng vào một số hệ thống con ssh. Thay vào đó tôi có nghĩa là thêm một người dùng vào hệ thống máy tính. Vì vậy, ví dụ, tôi có một hệ thống chạy ổn định debian, hãy gọi nó bằng địa chỉ của nó, www.hg.bar.com. Tôi muốn thêm người dùng (thông qua kuser, user-admin hoặc useradd hoặc một số cách tương tự) gọi anh ta hg_guest. hg_guest không thể đăng nhập cục bộ hoặc thực hiện bất kỳ điều nào trong danh sách trên. Tất cả hg_guest có thể làm là thực thi các tập lệnh "từ xa". Tôi nói anh ấy sẽ có thể làm như vậy thông qua ssh, nhưng nghĩ về nó bây giờ, có thể cho phép anh ấy sử dụng ssh có thể cho phép anh ấy đăng nhập cục bộ, vì vậy một số cơ chế khác có thể được yêu cầu.