我正在嘗試使用特定的 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
另外,您正在運行什麼發行版和版本?