Скрипт 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

А какой дистрибутив и версию вы используете?

Связанный контент