SSH와 작동하지 않는 쉘을 사용하는 Bash 스크립트

SSH와 작동하지 않는 쉘을 사용하는 Bash 스크립트

특정 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

또한 어떤 배포판과 버전을 실행하고 있습니까?

관련 정보