Cơ chế sử dụng phụ thuộc vào mục tiêu của bạn.
Nếu bạn muốn cung cấp một cái gì đó thuận tiện hoặc thân thiện cho người dùng của bạn, thì bạn /etc/profile
đủ hợp lý nếu tất cả người dùng của bạn sử dụng cùng một vỏ. Nếu bạn muốn các lệnh chỉ thực thi khi đăng nhập qua ssh
, hãy đặt các lệnh vào /etc/ssh/sshrc
. (Nếu bạn không phiền người dùng ghi đè các lệnh bằng ~/.ssh/rc
tệp riêng của họ .)
Nếu bạn muốn buộc người dùng thực thi một chương trình và chỉ một chương trình , thì ForceCommand
tùy chọn như được mô tả bởi DigitalRoss là một cách tiếp cận tốt. (Cá nhân tôi sẽ giới hạn người dùng hơn nữa với hệ thống kiểm soát truy cập bắt buộc như AppArmor , SELinux , TOMOYO hoặc SMACK , để đảm bảo chương trình không thể cho phép người dùng thoát. công cụ tôi chọn đầu tiên, nhưng những công cụ khác là những công cụ tốt được viết bởi các lập trình viên xuất sắc.)
Nếu bạn chỉ muốn một chương trình thực thi và không làm phiền người dùng theo bất kỳ cách nào , thì cách tiếp cận tốt nhất là sử dụng pam_exec(8)
mô-đun, không thể bỏ qua, hoạt động bất kể shell và cung cấp khả năng dễ dàng chạy như người dùng hoặc người dùng tài khoản của chương trình thực hiện ủy quyền. Trang này đưa ra ví dụ sau:
Add the following line to /etc/pam.d/passwd to rebuild the
NIS database after each local password change:
passwd optional pam_exec.so seteuid make -C /var/yp
This will execute the command
make -C /var/yp
with effective user ID.
Điều này có thể được mở rộng để chạy trên auth
, account
, password
, và session
hành động; có lẽ session
sẽ là tốt nhất để thực hiện khi đăng nhập. Chỉ cần thêm một dòng như:
session optional pam_exec.so log=/var/log/ssh_login_cmd /usr/local/bin/ssh_cmd
để /etc/pam.d/sshd
tập tin kiểm soát của bạn .