Tôi đang cho phép một người bạn một tài khoản cục bộ trên máy của mình, dành riêng cho SCP. Tôi có thể chỉ định trình bao tài khoản của anh ấy như /bin/true
, hoặc bằng bất kỳ cách nào khác giới hạn tài khoản, trong khi vẫn cho phép SCP không?
Tôi đang cho phép một người bạn một tài khoản cục bộ trên máy của mình, dành riêng cho SCP. Tôi có thể chỉ định trình bao tài khoản của anh ấy như /bin/true
, hoặc bằng bất kỳ cách nào khác giới hạn tài khoản, trong khi vẫn cho phép SCP không?
Câu trả lời:
Bạn có thể đặt trình bao của người dùng đó thành rssh
hoặc scponly
, được thiết kế chính xác cho mục đích đó:
rssh là một trình bao hạn chế để sử dụng với OpenSSH, chỉ cho phép scp và / hoặc sftp. Bây giờ nó cũng bao gồm hỗ trợ cho ndist, rsync và cvs.
scponly là một 'vỏ' (loại) thay thế cho các quản trị viên hệ thống muốn cung cấp quyền truy cập cho người dùng từ xa để đọc và ghi các tệp cục bộ mà không cung cấp bất kỳ quyền riêng tư thực thi từ xa nào.
Khi bạn chạy scp, daemon OpenSSH sẽ tắt một scp
tiến trình với -f
tùy chọn. Khi bạn chạy sftp, daemon OpenSSH sẽ tắt một sftp-server
tiến trình. Trong cả hai trường hợp, quy trình con được thực thi thông qua trình bao của người dùng, do đó trình bao đó phải hỗ trợ ít nhất các lệnh này, với cú pháp giống như Bourne. Bất kỳ shell kiểu Bourne nào cũng sẽ làm như vậy (tôi nghĩ các quy tắc trích dẫn của nó đủ tương thích cho những gì sshd
sử dụng). Rssh và hoàn toàn cho phép các lệnh này và không có gì khác. /bin/true
thậm chí sẽ không chạy các lệnh này.
/bin/false
hoặc chương trình khác không có gì, thì cả scp và sftp đều không hoạt động. Đối với cả hai lệnh, trình nền SSH sẽ tắt một lệnh shell chạy quy trình máy chủ chuyên dụng (scp -f
hoặc sftp-server
). Nó cần một lớp vỏ kiểu Bourne, hoặc ít nhất là một xấp xỉ đủ gần (chẳng hạn như rssh
chỉ cho phép một vài lệnh thông qua).
Không, bạn không. Như Gilles đã chỉ ra, rssh hoạt động rất độc đáo cho đến cuối cùng, cũng như một cách khéo léo . Xem thêm các cuộc thảo luận trong câu hỏi liên quan này .
/bin/false
sẽ không hoạt động, cũng sẽ không chmod 644 ksh .