Điểm:0

Các giải pháp mặc định cho shell linux từ xa rất hạn chế

lá cờ sg

Tôi có một người dùng cần kết nối với một máy từ xa m (thông qua ssh) và chạy một lệnh trong một nhóm lệnh cố định (giả sử N Tổng cộng).

Các lệnh này dựa trên python, các thư viện của nó và quyền truy cập đặc quyền vào mạng (máy nào m có).

Có chiến lược mặc định nào để giới hạn vỏ người dùng linux chỉ để thực hiện các N lệnh, mà không có bất kỳ khả năng:

  • truy cập thêm vào fs
  • tự đọc nội dung của các lệnh
  • có được quyền truy cập đặc quyền vào mạng
  • và giống nhau

Nói cách khác, các chiến lược mặc định để nhắc một bảng điều khiển giới hạn cho người dùng sau khi họ đăng nhập là gì, ví dụ: chỉ cho phép các số giữa 1N làm đầu vào?

Brandon Xavier avatar
lá cờ us
Nếu N là một số khá nhỏ, tại sao không giữ cho nó đơn giản và để trình bao thực thi một menu cơ bản khi đăng nhập và thoát ra để đăng nhập khi hoàn tất?
lá cờ sg
@BrandonXavier làm cách nào để ngăn người dùng thoát khỏi trình bao hoặc chạy các lệnh từ xa qua ssh?
Brandon Xavier avatar
lá cờ us
Đặt các câu lệnh `trap` trong tập lệnh menu để đăng xuất nếu người dùng nhấn control-C, control-\, v.v.
Điểm:1
lá cờ la

Có một mẹo hay trong tệp ủy quyền_keys, bạn có thể sử dụng tùy chọn lệnh để xác định lệnh sẽ chạy khi đăng nhập, được xác định bằng một khóa, vì vậy nếu N lệnh của bạn là tĩnh - bạn có thể xác định chúng trên máy chủ và thế là xong. Nó sẽ không hạn chế mạng, chỉ khởi chạy lệnh. Nó sẽ trông giống như thế trong tệp ủy quyền:

lệnh = "ngày" ssh-rsa AAAA

Bạn có thể tìm thêm thông tin về điều này hướng dẫn

Để ngăn người dùng truy cập mạng - bạn có thể sử dụng SELinux hoặc phần mềm tương tự khác, bạn cũng có thể viết một hook eBPF để cho phép chính xác những gì bạn muốn.

Điểm:0
lá cờ cn

Giả sử đây không phải là một chroot nhỏ hoặc vùng chứa chỉ với những gì họ cần, mà là một hệ điều hành đa người dùng có mục đích chung.

Với đủ tự động hóa, có thể không cần đăng nhập vào máy chủ. Có lẽ cung cấp thông qua một số hệ thống tự phục vụ các tùy chọn hạn chế này, điều mà quá trình tự động hóa thực hiện.

Để cho phép họ làm điều đó trên máy chủ, hãy thử cái mà tôi gọi là menu văn bản cố định. Đó là một kịch bản bạn có thể cần phải viết.

Hạn chế nghiêm ngặt một người làm những việc khác đòi hỏi một số thủ thuật.

  • Đăng nhập với tư cách là người dùng không có đặc quyền, lý tưởng nhất là duy nhất đối với họ.Lên cấp cho nội dung riêng tư bằng các công cụ như doas hoặc sudo.
  • Bắt buộc menu này là những gì chạy với OpenSSH ForceCommand khối.
  • Cũng thực hiện nó từ cấu hình shell. exec để nó thay thế quy trình shell và khi menu thoát, phiên của chúng cũng vậy.
  • Bẫy tín hiệu trong tập lệnh menu.
  • Coi chừng các chương trình có thể chạy các lệnh tùy ý. Lột xác là tầm thường trong vim, lệnh là :vỏ bọc
  • Viết và sử dụng làm tập lệnh bao bọc các mục menu, cho các hoạt động phức tạp hơn hoặc kiểm soát nhiều hơn đối với đầu ra.

Chọn ngôn ngữ kịch bản để viết menu. Cân nhắc sử dụng thư viện menu văn bản hiện có. Bản thân vòng lặp đầu vào không khó, nhưng làm cho nó mạnh mẽ, dễ sửa đổi và có UX tốt mới là điều bạn thực sự muốn trong quá trình sản xuất.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.