![ssh登入-執行命令-退出](https://rvso.com/image/515688/ssh%E7%99%BB%E5%85%A5-%E5%9F%B7%E8%A1%8C%E5%91%BD%E4%BB%A4-%E9%80%80%E5%87%BA.png)
有沒有辦法只在使用者(ssh)登入時執行命令(或腳本)然後退出?用某種自訂腳本取代預設 shell。
我希望用戶只能重新啟動服務,但不能進行常規 shell 訪問
謝謝
答案1
您想要執行此操作的方法是使用 ssh 金鑰,並在使用者的 .ssh/authorized_keys 檔案中設定與該金鑰關聯的命令。快速谷歌給了我這,特別是「強制命令」部分。
編輯:第二部分是針對passwd -l
使用者的,因此不可能基於密碼登入。
答案2
在 Ubuntu 中,我能夠建立一個重新啟動服務的腳本。然後,在使用者的 /etc/passwd 條目中,我將腳本設定為登入 shell(最後一個欄位)。
來自/etc/passwd:
testaccount:x:1001:1001:1,,:/home/testaccount:/home/testaccount/login.sh
答案3
類似的東西?
root@admin:~ # ssh root@www 'df -h'
Filesystem Size Used Avail Use% Mounted on
/dev/ubda 3.5G 2.1G 1.4G 61% /
tmpfs 96M 4.0K 96M 1% /dev/shm