[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] /etc/passwd
From: |
Eliphas Levy Theodoro |
Subject: |
Re: [shell-script] /etc/passwd |
Date: |
Tue, 22 Jan 2002 21:09:52 -0200 (BRST) |
Julio Cezar Neves - DISB.O, @ 13:25:
> Vai sem teste, tá?
>
> #!/bin/sh
>
> trap "rm -f /tmp/$$ ; exit" 0 1 2 3 15
> cp /etc/passwd /tmp/passwd # Copia de seguranca
>
> cat /etc/passwd |
> while read Linha
> do
> if [ -z `echo $Linha | cut -f7 -d:` ]
> then
> read Linha1
> Linha="$Linha$Linha1"
> fi
> echo "$Linha1" >> /tmp/$$
> done
> mv -f /tmp/$$ /etc/passwd
>
> Qdo terminar verifique se o /etc/passwd está legal. Caso positivo:
> rm /tmp/passwd
> caso negativo
> mv -f /tmp/passwd /etc/passwd
Lá vai um jeito-sed, também sem teste, tá? ';)
sed '/^\([^:]*:\)\{6\}[^:]*$/d' /etc/passwd
/ procurar...
^ começo de linha
([^:]*:){6} não-dois-pontos, 0 ou + vezes, seguido de dois
pontos, seis vezes
[^:]* não-dois-pontos, 0 ou + vezes
$ fim de linha
/d delete isso.
Ou seja, "procure por uma linha, contendo 6 dois pontos, contendo
qualquer coisa entre eles e nas extremidades", e delete isso.
Tudo que aparecer na tela tá errado. Aí é só arrumar.
> -----Mensagem original-----
> De: Fahrinha (Nautilus) [mailto:address@hidden]
>
> Será que alguém tem algum script que verifique o arquivo /etc/passwd linha
> por linha? Pois geralmente é preciso edita-lo e o editor pode quebrar a
> linha...
> Que ele verifique em cada linha...
>
> Exemplo de linha.
> hpstudio:x:409:100:administrador da homepage:/home/hpstudio:/usr/bin/ppp
> nt$:*:42:100:Conta da Maquina NT:/dev/null:/dev/null
>
> texto1:simbolo1:numero1:numero2:texto2:texto3:texto4
--
Eliphas
Anyone sending unsolicited bulk email (UBE, SPAM) to this address will
be charged a $25 handling fee plus a $5 network traffic fee per
started kilobyte. By extracting my address from this message or its
header, you agree to these terms.
Nevertheless, spammers trying to auto-extract addresses from this
message will definitely want to include address@hidden, address@hidden,
and address@hidden