我试图阻止远程调用脚本。用户需要先 SSH 登录,然后运行脚本
ssh remote-server "script.sh"
应该失败
ssh remote-server
登录后
./script.sh
应该可以工作
我可以更改所有权并应用chmod
,但远程用户可以使用ssh remote-server "sudo -u newuser ./script.sh"
使用AWS EC2实例
答案1
运行ssh foo@remote-server
后跟./script.sh
相当于运行ssh foo@remote-server ./script.sh
,而运行ssh foo@remote-server
后跟sudo -u bar ./script.sh
相当于ssh foo@remote-server sudo -u bar ./script.sh
(除了sudo
可能会失败,因为它需要 TTY,这可以轻松解决)。所以我担心你问的没有意义。您为解决这种人为差异所做的任何事情,例如测试是否存在$TERM
或[ -t 0 ]
可能很容易解决。