Re: Skift shell

From: Morten Liebach (none@m--mongers.org.lh.bsd-dk.dk)
Date: Thu 30 Jan 2003 - 13:28:51 CET


From: "Morten Liebach" <none@m--mongers.org.lh.bsd-dk.dk>
Date: Thu, 30 Jan 2003 13:28:51 +0100
To: bsd-novice@bsd-dk.dk
Subject: Re: Skift shell

On 2003-01-29 22:20:05 +0100, Simon wrote:
> Torben Sørensen wrote:
>
> >Hej folks
> >
> >Hvordan skifter jeg shell (fra sh til tcsh)?
> >Kan man skifte shell for alle brugere på en gang??
> >
> man chsh
> cat /etc/passwd | sed 's!:/bin/sh$!:/bin/tcsh!' > /etc/passwd ;#

Der er en "Useless Use of Cat Award" til dig. :)
Det skulle have været:

    sed 's!:/bin/sh$!:/bin/tcsh!' /etc/passwd > /etc/passwd

Og det ville ikke virke. Du kan ikke lave in-place editing på den måde.

    sed 's!:/bin/sh$!:/bin/tcsh!' /etc/passwd > /etc/passwd.tmp && \
        mv /etc/passwd.tmp /etc/passwd

eller (virker ikke med alle sed(1) udgaver, virker på FreeBSD)

    sed -i .bak 's!:/bin/sh$!:/bin/tcsh!' /etc/passwd

ville gøre det du havde tænkt dig. Check sed(1) for hvad der sker.

Men hov, det virker stadig ikke! Hvis du virkelig vil scripte tingene
på den måde så skal der nu køres pwd_mkdb(8) for at det virker som det
var meningen. Og hvad hvis der nu er nogle system bruger accounts der
helst skal have /bin/sh som shell fordi der kan være scripts der er
afhængige af det?
Pas på.

Måden jeg ville løse det på er at den enkelte bruger bruger chsh(1),
eller at root bruger vipw, og fra vi(1) udfører kommandoen:

    :%s/:\/bin\/sh$/:\/bin\/tcsh/c

Den vil prompte for hver substitution, så kan man tage individuelt
stilling.

Derefter rettes scripts/configfiler til så nye brugere oprettes med
/bin/tcsh som shell, se adduser(8) og pw(8).

Håber det løste problemet, og at nogen lærte noget. :)
 
Med venlig hilsen
                                 Morten

-- 
OpenPGP: 0xF1360CA9 -- 8CF5 32EE A5EC 36B2 4E3F  ACDF 6D86 BEB3 F136 0CA9
         Morten Liebach <none@m--mongers.org.lh.bsd-dk.dk> - http://m.mongers.org/



This archive was generated by hypermail 2b30 : Wed 15 Nov 2006 - 18:25:07 CET