Làm cách nào để cho phép đăng nhập ssh ẩn danh vào hộp Linux và chỉ chạy một chương trình?


3

Tôi có một trò chơi dựa trên văn bản được cài đặt trên máy chủ Linux và tôi muốn cho phép đăng nhập trên máy chủ đó thông qua SSH, nhưng với các hạn chế.

Việc đăng nhập sẽ trực tiếp đến trò chơi đọc đầu vào bàn phím từ stdin. Nếu trò chơi thoát, người dùng sẽ bị ngắt kết nối ngay lập tức khỏi máy chủ. Luân phiên, nếu người dùng đăng nhập thì chỉ nên có một lệnh cho người dùng, trò chơi.

Tôi đã nghĩ về việc sử dụng một giao diện dựa trên web cho trò chơi, nhưng có một vài điều về việc chơi trò chơi trong một thiết bị đầu cuối mà cảm thấy đúng. Vui lòng không trả lời "đây là một ý tưởng tồi ..." hoặc các biến thể của nó bởi vì đó là một cách dễ dàng. Tôi chỉ muốn biết nếu có ai biết về một giải pháp.

Câu trả lời:


3

Cách tiếp cận truyền thống là chỉnh sửa tập lệnh đăng nhập của người dùng thành bẩy ngắt, chạy chương trình và sau đó đăng xuất.

Bạn có thể đặt shell đăng nhập của người dùng thành shell bị hạn chế (man rksh) "Rksh là phiên bản giới hạn của trình thông dịch lệnh ksh; nó được sử dụng để thiết lập tên đăng nhập và môi trường thực thi có khả năng được kiểm soát nhiều hơn so với shell tiêu chuẩn . " Hoặc sử dụng bash trong hạn chế chế độ.

Xóa quyền truy cập ghi của người dùng vào tập lệnh đăng nhập của họ (và bất cứ điều gì khác mà chương trình không cần phải ghi vào).

Để bảo mật hơn chroot người dùng.


2

Có lẽ bạn có thể đặt nhị phân trò chơi của mình làm vỏ đăng nhập trong / etc / passwd.

Nhưng tôi chưa bao giờ thử nó.


Đây là suy nghĩ đầu tiên của tôi là tốt. Về lý thuyết, vỏ đăng nhập của người dùng trong / etc / passwd chỉ là một tệp nhị phân được thực thi khi người dùng đăng nhập. Tôi cho rằng nó có thể hoạt động bằng cách chỉ vào nhị phân trò chơi.
DWilliams

Tôi không chắc điều gì xảy ra về cài đặt STTY và các biến môi trường như TERM khi bạn làm điều đó. Có ai biết không?
RedGrittyBrick

Có thể không liên quan đến OP, nhưng điều này sẽ không hiệu quả với tôi vì tôi cần truyền các đối số cho chương trình.
David
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.