使用 shell 的 Bash 脚本无法与 SSH 配合使用

使用 shell 的 Bash 脚本无法与 SSH 配合使用

我正在尝试使用特定的 bash 脚本作为用户 shell。这样,如果用户登录,就会执行该脚本。

我创建了脚本并将其放入特定用户的主目录中。我进行了修改,/etc/passwd以将该脚本用作此用户的 shell。

如果我在本地登录,这个方法很好用。但如果我尝试通过 SSH 登录,就会出现以下错误:

/home/user/custom-shell: No such file or directory
Connection to xyz closed.

该脚本的路径是正确的,因为我能够在本地登录并且可以看到该脚本将被执行。

我也尝试使用来更改权限chmod 777 custom-shell,但这也没有帮助。

您知道问题出在哪里吗?

答案1

将要用于 shell 的脚本/程序添加到/etc/shells

答案2

我可以看到你在 /etc/passwd 中输入的行以及脚本和它的权限吗?我已经在本地测试过了,效果很好:

[root@ops-tricks ~]# grep jdoe  /etc/passwd
jdoe:x:1010:1010::/home/jdoe:/home/jdoe/custom-shell
[root@ops-tricks ~]# cat /home/jdoe/custom-shell
#!/bin/bash

echo "Custom Shell"
[root@ops-tricks ~]# su - jdoe
Custom Shell
[root@ops-tricks ~]# ssh jdoe@localhost
jdoe@localhost's password:
Last login: Mon Sep  3 23:32:25 2018
Custom Shell
Connection to localhost closed.

[root@ops-tricks ~]# ls -l /home/jdoe/custom-shell
-rwxr-xr-x. 1 root root 33 Sep  3 23:28 /home/jdoe/custom-shell

另外,您正在运行什么发行版和版本?

相关内容