特定のbashスクリプトをユーザーシェルとして使用しようとしています。そのため、ユーザーがログインすると、スクリプトが実行されます。
スクリプトを作成し、特定のユーザーのホームディレクトリに配置しました。このユーザーのシェルとしてスクリプトを使用するように/etc/passwd
を変更しました。
ローカルでログインしている場合、これはうまく機能します。しかし、SSH経由でログインしようとすると、次のエラーが発生します。
/home/user/custom-Shell: No such file or directory
Connection to xyz closed.
ローカルにログインでき、スクリプトが実行されることがわかるので、このスクリプトへのパスは正しいです。
また、chmod 777 custom-Shell
を使用して権限を変更しようとしましたが、それも役に立ちませんでした。
何が問題なのか分かりますか?
シェルに使用するスクリプト/プログラムを /etc/shells
/ 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
また、どのディストリビューションとバージョンを実行していますか?