![ssh登录-执行命令-退出](https://linux22.com/image/515688/ssh%E7%99%BB%E5%BD%95-%E6%89%A7%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