web-dev-qa-db-ja.com

シェルを使用するBashスクリプトがSSHで機能しない

特定のbashスクリプトをユーザーシェルとして使用しようとしています。そのため、ユーザーがログインすると、スクリプトが実行されます。

スクリプトを作成し、特定のユーザーのホームディレクトリに配置しました。このユーザーのシェルとしてスクリプトを使用するように/etc/passwdを変更しました。

ローカルでログインしている場合、これはうまく機能します。しかし、SSH経由でログインしようとすると、次のエラーが発生します。

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

ローカルにログインでき、スクリプトが実行されることがわかるので、このスクリプトへのパスは正しいです。

また、chmod 777 custom-Shellを使用して権限を変更しようとしましたが、それも役に立ちませんでした。

何が問題なのか分かりますか?

1
user485485

シェルに使用するスクリプト/プログラムを /etc/shells

2
HBruijn

/ 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

また、どのディストリビューションとバージョンを実行していますか?

0
John Doe