Câu trả lời:
Một trong những cách dễ dàng / hiệu quả nhất để kiểm soát những gì người dùng có thể làm là lshell .
lshell là một trình bao được mã hóa bằng Python, cho phép bạn giới hạn môi trường của người dùng trong các nhóm lệnh giới hạn, chọn bật / tắt bất kỳ lệnh nào qua SSH (ví dụ: SCP, SFTP, rsync, v.v.), ghi nhật ký lệnh của người dùng, thực hiện hạn chế thời gian, và hơn thế nữa.
Nếu bạn cung cấp cho ai đó một tài khoản shell, họ có thể xem tất cả các tệp có thể đọc được trên thế giới. Điều này bao gồm nhiều tệp /etc
cần thiết để hệ thống hoạt động, bao gồm /etc/passwd
(chứa tên người dùng nhưng không chứa mật khẩu).
Nếu bạn cho phép người dùng chỉ đăng nhập bên trong một chroot, họ không thể thấy các tệp bên ngoài chroot. Điều đó có nghĩa là bạn phải đặt đủ các chương trình, thư viện, v.v., bên trong chroot - mọi thứ người dùng cũng phải có quyền truy cập và mọi phụ thuộc của chúng.
Lưu ý rằng một chroot chỉ bảo vệ truy cập tệp trực tiếp. Người dùng có thể rình mò nhiều thứ khác nhau, bao gồm tên và đối số của các quy trình đang chạy của tất cả người dùng (trừ khi bạn thiết lập các biện pháp bảo vệ bổ sung như SELinux). Nếu người dùng sẽ không cần phải làm gì nhiều, bạn có thể thiết lập các hạn chế chặt chẽ hơn (bao gồm ngăn người dùng tạo các tệp thực thi của riêng họ) bằng một vỏ bị hạn chế, nhưng thiết lập một vỏ bị hạn chế là rất khó, vì vậy tôi không ' t giới thiệu nó.
Ngày nay, máy ảo rất rẻ. Bạn có nhiều triển khai miễn phí để lựa chọn (Chế độ người dùng Linux, VirtualBox, VMware, KVM, OpenVZ, VServer, Nott) và không gian đĩa được sử dụng bởi một cài đặt hệ thống bổ sung là tối thiểu (và dù sao bạn cũng có thể cần nó để chroot). Một máy ảo cô lập khá nhiều thứ: tập tin, quy trình, kết nối mạng, trừ khi bạn có những ràng buộc rất bất thường, đây là cách để đi.
Một tùy chọn là đặt chúng trong phiên shell bị hạn chế, chẳng hạn như rbash [bash -r].
Tuy nhiên, có một chút không rõ ràng vào thời điểm này, chính xác, bạn muốn đạt được điều gì, tuy nhiên, trên bề mặt posix acl 'for' other 'sẽ áp dụng cho tài khoản mới cũng như bất kỳ nhóm nào cho các nhóm mà tài khoản thuộc về, chẳng hạn như 'người dùng' chẳng hạn.
Hãy nhớ rằng các phần của /etc
được yêu cầu phải có thể đọc được ngay cả bởi người dùng không có đặc quyền. Nếu có những thứ /etc
không thể đọc được nhưng là, bạn có vấn đề lớn hơn và tối thiểu nên chạy chương trình kiểm tra / sửa chữa quyền phân phối của bạn.
Nhà tù là cách dễ nhất để thiết lập các hạn chế hà khắc. Có nhiều cách khác, chẳng hạn như thiết lập SElinux và sắp xếp để người dùng có bối cảnh bảo mật rất hạn chế.