Я пытаюсь использовать определенный скрипт 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
А какой дистрибутив и версию вы используете?