特定の 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
また、実行しているディストリビューションとバージョンは何ですか?