Re: Skift shell

From: Simon (none@simon--blueshell.dk.lh.bsd-dk.dk)
Date: Thu 30 Jan 2003 - 14:14:44 CET


Date: Thu, 30 Jan 2003 14:14:44 +0100
From: Simon <none@simon--blueshell.dk.lh.bsd-dk.dk>
To: bsd-novice@bsd-dk.dk
Subject: Re: Skift shell

Morten Liebach wrote:

>On 2003-01-29 22:20:05 +0100, Simon wrote:
>
>
>>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
>
>
Jeg kan se nogle sikkerhedsmæssige fordele i at bruge en midlertidig fil
frem for at læse fra stdin, er der flere grunde til at min linje ikke
burde virke over den sidst nævnte?
Siden sed læser en linje ad gangen er det nødvendigt at læse fra en
anden kilde end fra filen direkte.

Derudover skal du have tak for de yderligere rettelser, jeg er vist for
vant til at Linux' nøjsomme måde at håndtere det på.

>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å.
>
>
Hence mit alternativ.

>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
>



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