Default Shell für User einstellen

Hallo,

bei meinem frischen KUbuntu Client, lmn7, habe ich das Problem, dass bei “normalen” Nutzern als Shell “/bin/sh” eingestellt ist, ich möchte aber “/bin/bash” haben.

Wenn ich chsh eingebe, kommt "you may not change the shell for ‘ba’ " (ba ist der Nutzer, ich arbeite mit Holgers virtueller Umgebung).

Das müsste man vermutlich irgendwie auf dem Server einstellen können (da liegen ja auch die Nutzerprofile), hat jemand eine Idee? Mit der Shell, so wie sie da eingestellt ist, kann man nicht arbeiten. Gerade im Informatikunterricht benutze ich auch mit Schülern mal die Shell, das ist so suboptimal.

Dank + Gruß, Andreas

Hallo Andreas,

von Ubuntu kenne ich, dass /bin/sh einfach ein symbolischer Link auf die dash ist, event. könntest du ja so einfach die shell umbiegen.
Ich weiß aber nicht, welche Seiteneffekte das mit sich bringt.

Grüße,
Sven

Hallo Andreas,

Standard ist eigentlich die Bash (und ich glaube nicht, dass man das
ändern kann).

Was wird denn bei “smbldap-udershow ba” auf dem Server angezeigt?

Beste Grüße

Jörg

Hallo,

  1. Es ist ein Ubuntu, tatsächlich verweist /bin/sh auf dash.

Ausführlich:
Ich habe einen Kubuntu 18.04 Client unter Linuxmuster 7. Auf diesem habe ich einen lokalen Nutzer namens localadmin sowie natürlich Netzwerkutzer über den Server, davon einer der Nutzer “ba”.

Ich verwende das konsolenprogramm von kde. Unten bekomme ich die Shell angezeigt.
Beim Nutzer “ba” zeigt das Programm “sh” an (die in Wirklichkeit ja “dash” ist), beim Nutzer “localadmin” dann “bash”.

Dash zeigt keine Farben, Tabulator geht nicht, Cursortasten gehen nicht und noch vieles mehr, während bei bash alles schön bunt ist und funktioniert wie es soll.

Das muss also irgend eine Einstellung im Nutzerprofil sein, die dafür sorgt, dass der Netzwerknutzer “ba” die dash bekommt, der normale Nutzer “localadmin” die bash.

smbldap-usershow musste ich erst mal installieren, dann bekomme ich:

Unable to open /etc/smbldap-tools/smbldap.conf for reading !
Compilation failed in require at /usr/sbin/smbldap-usershow line 27,
BEGIN failes–compilation aborted at /usr/sbin/smbldap-usershow line 27

Ich bin etwas ratlos. Den symlink einfach umbiegen kann ich natürlich mal probieren.

Symlink umbiegen bringt was: Cursortasten und Tabulator gehen jetzt, Farben aber nohc nicht. Ich habe mal probiert, die .bashrc vom Localadmin zum Nutzer ba zu kopieren, das hat aber nichts gebracht.

Hallo Andreas,

das smbldap-usershow gilt für die LML6 - der Tag lml7 kam in der Mail
nicht an. Ist also nicht relevant.

LG Jörg

Ich glaube, das ist echt kein einfaches Problem. Die üblichen Tools, um die Standard-Shell zu ändern, gehen alle nicht:
https://www.tecmint.com/change-a-users-default-shell-in-linux/
In der /etc/passwd sowohl des Servers als auch des Clients ist der Nutzer gar nicht drin (das wird ja bei lmn 7 irgendwie über die Domäne gelöst, damit kenne ich mich überhaupt nicht aus).
Wenn ich echo $SHELL eingebe, kommt eine lelere Ausgabe. Wenn ich das beim lokalen nUtzer mache, kommt /bin/bash

Die Shell der Netzwerknutzer ist also nicht gesetzt, und dann wird /bin/sh angenommen (was zu funktionalen Einschränkungen führt, selbst dann, wenn /bin/sh auf die bash umgebogen ist, vermutlich wird dann trotzdem die .bashrc nicht gelesen).

Also: Für die Linux-Netzwerk-Nutzer müsste man irgendwie eine shell setzen können, ich habe aber keinerlei Ahnung, wie!

Hallo @andreas72 ,

ich hatte das Problem heute auch festgestellt und gleich mal einen Lösungsvorschlag als Pull Request an @Tobias geschickt.

Hi zusammen,

bei mir in Ubuntu 18.04 Mate ist /bin/sh -> dash
und trotzdem, ohne irgend einen Fix, haben meine User die /bin/bash asl shell. Warum?

jeder kann den möglichen Fix von @Till mal ausprobieren:


nur in der Datei /etc/sssd/sssd.conf unter der entsprechenden rubrik die option default_shell = /bin/bash eintragen.
und dann den rechner unsychronisiert starten oder auf der konsole die Dienste sssd und lightdm neustarten:
sudo  systemctl restart sssd
sudo systemctl restart lightdm

Das könnte reichen.

Würde mich interessieren, warum es bei mir so gesetzt ist…
Vg, Tobias

Also für gewöhnlich sollte eine default Shell definiert werden in der sssd Konfiguration, so zumindest die Doku die ich gesehen habe.

Anders als LMN6.2 mit OpenLDAP ignoriert sssd den AD Shell Eintrag, ich gehe davon aus, dass der Fallback wenn nichts definiert wird /bin/sh ist.
Wieso das in deinem System anders ist kann ich nicht sagen, eventuell hängt es mit deinem Standard Profil zusammen? Meine Erkenntnisse wurden auf einem Ubuntu 20.04 mit XFCE, Lightdm und lmn-adsso gesammelt.