Ajuda com um script [RESOLVIDO]

1. Ajuda com um script [RESOLVIDO]

Gunslinger de Oliveira
gunslinger

(usa Debian)

Enviado em 24/07/2011 - 11:20h

Bom galera, tenho que fazer um script que mostre os usuario cadastrados no sistema e mostre suas pastas home..
Pesquisei bastante, mas nao consegui finalizar..

Tive a seguinte ideia:
Usar o comando ls -l /home>teste.txt, que lista os usuarios e permissoes e direcionei ele pra um .txt.
Mas agora me perdi, nao sei como saber pegar os usuarios..
No caso, existe a possibilidade de capturar a ultima palavra de cada linha de um txt? (que no caso seria o nome dos usuario)

Se eu viajei demais, desconsiderem e respondam apenas a questão =P


  


2. Re: Ajuda com um script [RESOLVIDO]

Joao
stack_of

(usa Slackware)

Enviado em 24/07/2011 - 12:11h

O arquivo /etc/passwd contem todos os usuários e sua /home:

cat /etc/passwd | cut -d":" --field=1,6

Vai mostrar usuários, diretórios /home ou de configuração.


3. Re: Ajuda com um script [RESOLVIDO]

Elder Marco
eldermarco

(usa Fedora)

Enviado em 24/07/2011 - 19:50h

o awk poderia lhe ajudar nessa




$ awk -F: '$6 ~ /(\/home\/.*|\/root)/ && !/nologin$/{ print $1"\t"$5 }' /etc/passwd

Nesse caso, ele irá imprimir o username do usuário e também o nome completo do mesmo, caso ele tenha. Algumas alterações nesse comando, deverá deixar como você quer.


4. script

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 25/07/2011 - 19:55h

Segue um script bacana, contém cores que deixam mais amigável.

#!/bin/bash

### Variables of colors
RED="{TEXTO}33[0;31m"
GREEN="{TEXTO}33[1;32m"
END="{TEXTO}33[0m"

USER=`cat /etc/passwd | cut -d":" --field=1,6`

for i in `echo $USER`
do

USER=`echo $i | cut -d: -f1`
PASTA=`echo $i | cut -d: -f2`
echo -e "USUARIO:$RED $USER $END --> PASTA:$GREEN $PASTA $END"

done


Boa sorte!


5. Re: Ajuda com um script [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 26/07/2011 - 23:31h

Cara, qdo colei o script aqui ele substituiu a "barra invertida e o numero zero" por {TEXTO}. Não sei o que aconteceu. Quando eu digito aqui "barra invertida e o numero zero", mas apenas os simbolos destes, ele escreve a palavra TEXTO entre chaves. Sinceramente não sei o porque. Mas faça essa substituição para rodar corretamente!


6. tenta isso

Hudson Moreira Guimaraes dos Santos
hudyfx

(usa Outra)

Enviado em 26/07/2011 - 23:51h

cara... porque vc não usa o arquivo passwd? todos os usuários cadastrado no sistema estão lá...
dentro do passwd alem dos usuários comuns vc tem os de sistemas, porem a única coisa os que os usuários tem de diferente é o bash.
se eu fosse fazer um parada dessa ai faria o seguinte:

$ cat /etc/passwd | grep bash | cut -d: -f1,6
root:/root
hudy:/home/hudy

o arquivo passwd é delimitado por ":" e possui 7 colunas, por tanto a coluna 1 é = ao usuário e a 6 é = ao path do usuário. Depois de encontrar os usuários que possuem o bash, o cut se encarrega de separar oque vc precisa...

bom é isso, vê se resolve.. faloww






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts