Bash スクリプトがシェルとして SSH で動作しない

Bash スクリプトがシェルとして SSH で動作しない

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

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

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

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

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

また、 を使用して権限を変更しようとしましたchmod 777 custom-shellが、それでも効果はありませんでした。

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

答え1

シェルに使用したいスクリプト/プログラムを追加します/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

また、実行しているディストリビューションとバージョンは何ですか?

関連情報