Bash 腳本作為使用 shell 無法與 SSH 一起使用

Bash 腳本作為使用 shell 無法與 SSH 一起使用

我正在嘗試使用特定的 bash 腳本作為使用者 shell。這樣,如果使用者登錄,腳本就會被執行。

我已經創建了腳本並將其放入特定用戶的主目錄中。我修改/etc/passwd為使用該腳本作為該使用者的 shell。

如果我在本地登錄,這非常有用。但如果我嘗試透過 SSH 登錄,我會收到以下錯誤:

/home/user/custom-shell: No such file or directory
Connection to xyz closed.

該腳本的路徑是正確的,因為我可以本地登入並且可以看到該腳本將被執行。

我還嘗試使用更改權限chmod 777 custom-shell,但這也沒有幫助。

你知道問題出在哪裡嗎?

答案1

將您想要用於 shell 的腳本/程式新增至/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

另外,您正在運行什麼發行版和版本?

相關內容