root-Shell ungleich /bin/sh

06/02/2011 - 18:20 von Andreas M. Kirchwitz | Report spam
Hallo Shell-Nutzer!

Die Frage ist so alt wie Unix: Was spricht dagegen, für den
root-Account in /etc/passwd eine andere Shell als die Bourne-Shell
und auch nichts weitgehend Kompatibles zu wàhlen?

Die alternative Shell soll eine sein, die zum Lieferumfang des
Anbieters gehört. Also nichts Selbstkompiliertes, wo vielleicht
ein erhöhtes Risiko von zerbröselten Library-Abhàngigkeiten besteht.
Und die Shell liegt damit im Haupt-Filesystem, womit sie also auch
im Single-User-Modus zur Verfügung stehen sollte.

Google liefert viele Treffer zum Thema.

Die meisten Antworten bestehen im Ratschlag, einen alternativen
Account, beispielsweise "toor", mit der UID/GID 0 einzurichten und
"su - toor" zu verwenden. Oder man solle den Leuten beibringen,
als erstes beispielsweise "exec <lieblingsshell>" einzutippen.
Andere versuchen, in ".profile" für interaktive Logins die
Wunsch-Shell nachzuladen.

Das mag funktionieren, wenn man allein auf einem System arbeitet
oder es mit hochdisziplinierten Hardcore-Sysadmins zu tun hat, aber
in der Praxis tippen die meisten Leute "su", "su -", "sudo" oder
"sudo -i" und wollen dann sofort eine komfortable Shell-Umgebung
vorfinden.

Unter Solaris ist die Standard-root-Shell /sbin/sh, also eine
statische sh. Kann mich allerdings nicht erinnern, dieses Feature
jemals benötigt zu haben. Und solange /usr kein eigenstàndiges
Filesystem ist, sehe ich ansonsten keinen Nachteil, eine Shell
aus /usr/bin (/bin ist nur ein Link auf /usr/bin) zu verwenden.

Unter Fedora und RedHat ist die Standard-Shell eine dynamisch
gelinkte /bin/bash. Man verschlechtert sich nicht, wenn man
alternativ eine der anderen Shells aus /bin verwendet.

Skripts sollten stets per #! angeben, worunter sie laufen sollen.
Und Linux zeigt mit bash als Standard-Shell, dass 100%ige Bourne-
Shell-Kompatibilitàt schon lange nicht mehr notwendig ist.

Was spricht also gegen eine andere Shell?

Grüße, Andreas
 

Lesen sie die antworten

#1 Sven Mascheck
06/02/2011 - 19:43 | Warnen spam
Andreas M. Kirchwitz wrote:

Die meisten Antworten bestehen im Ratschlag, einen alternativen
Account, beispielsweise "toor", mit der UID/GID 0 einzurichten und
"su - toor" zu verwenden. Oder man solle den Leuten beibringen,
als erstes beispielsweise "exec <lieblingsshell>" einzutippen.
Andere versuchen, in ".profile" für interaktive Logins die
Wunsch-Shell nachzuladen.

Das mag funktionieren, wenn man allein auf einem System arbeitet
oder es mit hochdisziplinierten Hardcore-Sysadmins zu tun hat, aber
in der Praxis tippen die meisten Leute "su", "su -", "sudo" oder
"sudo -i" und wollen dann sofort eine komfortable Shell-Umgebung
vorfinden.



Ich glaube, das ist ein sehr Usenet-lastiges Thema :)


Im Allgemeinen eine reine Abwàgung zwischen "Komfort" und denkbaren
unerwarteten Effekten? Als beliebiges Beispiel: z.B. bei der
Fehlereingrenzung, bei der andere, die man um Unterstützung bittet,
nicht damit rechnen, daß man die Login-Shell von root umgestellt hat?


Unter Solaris ist die Standard-root-Shell /sbin/sh, also eine
statische sh.



Nicht mehr seit SunOS 5.10.


Skripts sollten stets per #! angeben, worunter sie laufen sollen.
Und Linux zeigt mit bash als Standard-Shell, dass 100%ige Bourne-
Shell-Kompatibilitàt schon lange nicht mehr notwendig ist.



1.) #! (also /bin/sh) hat mit der Default Login Shell von "root"
ersteinmal nichts zu tun.

Also ein Themensprung?

2.) Unter Linux hat sich der Anteil der dash als /bin/sh gegenüber bash
in letzter Zeit sogar eher erhöht (Ubuntu 6.10, nun Debian 6.0).

3.) Was bedeutet eigentlich 100% bournekompatibel genau?
(Das sollte schon ganz klar sein, wenn es als Argument auftaucht.)

4.) Nur wenige Systeme haben eine traditionelle Bourne Shell als /bin/sh,
aber es gibt noch welche. Darüberhinaus ist ksh88 bei den kommerziellen
Systemen verbreitet, und allerlei ash-Varianten sowie bash bei den
freien Systemen.

Ähnliche fragen