Ich versuche, ein bestimmtes Bash-Skript als Benutzer-Shell zu verwenden. Wenn sich der Benutzer also anmeldet, wird das Skript ausgeführt.
Ich habe das Skript erstellt und es im Home-Verzeichnis des jeweiligen Benutzers abgelegt. Ich habe es so geändert, /etc/passwd
dass das Skript als Shell für diesen Benutzer verwendet wird.
Das funktioniert prima, wenn ich mich lokal anmelde. Aber wenn ich versuche, mich über SSH anzumelden, erhalte ich die folgende Fehlermeldung:
/home/user/custom-shell: No such file or directory
Connection to xyz closed.
Der Pfad zu diesem Skript ist korrekt, da ich mich lokal anmelden kann und sehe, dass das Skript ausgeführt wird.
Ich habe auch versucht, die Berechtigung mithilfe von zu ändern chmod 777 custom-shell
, aber das hat auch nicht geholfen.
Haben Sie eine Idee, wo das Problem liegt?
Antwort1
Fügen Sie das Skript/Programm, das Sie für eine Shell verwenden möchten, hinzu zu/etc/shells
Antwort2
kann ich die Zeile sehen, die Sie in /etc/passwd eingegeben haben, sowie das Skript und seine Berechtigungen? Ich habe es lokal getestet und es funktioniert gut:
[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
Und welche Distribution und Version verwenden Sie?