Tôi muốn hạn chế một số người dùng trên máy chủ của mình chỉ có thể thực thi một số lệnh nhất định. Để làm điều này, cách tiếp cận phổ biến nhất mà tôi có thể tìm thấy là sử dụng ăn vạ
.
Mặc dù tôi có thể tìm thấy nhiều trang web nói về rbash, nhưng tôi gặp khó khăn khi tìm bất kỳ thông tin nào về cách sử dụng đúng. Cách tiếp cận phổ biến nhất mà tôi có thể tìm thấy là tạo một liên kết tượng trưng từ /bin/rbash
đến /bin/bash
, hãy đặt shell đăng nhập của người dùng bị hạn chế thành /bin/rbash
và sau đó thiết lập một tùy chỉnh CON ĐƯỜNG
Trong ~/.bash_profile
trong thư mục chính của người dùng.
Tuy nhiên, tôi khá sốc khi biết rằng với thiết lập này, người dùng vẫn có thể sao chép tệp vào máy chủ bằng cách sử dụng scp
và họ thậm chí có thể mở một trình bao không hạn chế bằng cách sử dụng người dùng ssh@host -t bash
! Điều dường như đang xảy ra là máy chủ SSH đang chuyển lệnh tới trình bao đăng nhập trên máy chủ bằng cách sử dụng -c
, Vì thế người dùng ssh@host -t bash
làm cho máy chủ chạy /bin/rbash -c bash
, hoạt động vì .bash_profile
chưa được thực hiện để hạn chế đường dẫn. scp
tương tự làm cho máy chủ chạy /bin/rbash -c scp
.
Bây giờ tôi đã bắt gặp ForceCommand
chỉ thị của sshd. Về cơ bản, lệnh này luôn khiến lệnh được cấu hình được chuyển thành -c
vào shell đăng nhập, bỏ qua bất kỳ lệnh nào mà máy khách đã chỉ định. Vì thế nếu ForceCommand
được đặt thành ăn vạ
, điều đó sẽ luôn thực thi lệnh /bin/rbash -c rbash
trên máy chủ, bất kể máy khách có được gọi với -t bash
hoặc như scp
hay bất cứ cái gì. Không may, /bin/rbash -c rbash
gây ra .bash_profile
không được thực thi, vì vậy chúng tôi kết thúc với một trình bao bị hạn chế nhưng một trình bao bình thường CON ĐƯỜNG
, vì vậy chúng ta chỉ có thể gọi đánh đập
ở đó để thoát khỏi nó.
Những gì tôi muốn đạt được:
- Không có cách nào để tránh trình bao bị hạn chế đối với người dùng kết nối qua SSH
- Lý tưởng nhất là vẫn có thể thực thi các lệnh được phép trong trình bao bị hạn chế bằng cách sử dụng
người dùng ssh@máy chủ được phép_command
- Cấu hình không nên chỉ dành cho SSH, vì vậy người dùng đăng nhập chẳng hạn như trên TTY cũng nên bị hạn chế.