[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] listar usuários com uid acima de 1000
From: |
Andreyev Dias de Melo |
Subject: |
Re: [shell-script] listar usuários com uid acima de 1000 |
Date: |
Sat, 5 Feb 2005 22:40:58 -0200 |
On Fri, 04 Feb 2005 18:06:37 -0200, Fernando Ike
<address@hidden> wrote:
>
> Não tenho a menor idéia de fazer isso...
>
> Preciso listar os usuários com uid acima 1000, é possível fazer isso com
> for?
Acima de 1000?? Hmmm... acima de 1000 é fácil, pois 1000 é o primeiro
número de 4 'casas':
$ cut -d : -f 3 /etc/passwd | grep -E '^[0-9]{4,}$'
65534
1000
1001
1002
10000
Ou seja, do 3º campo do passwd(cut -d : -f 3 /etc/passwd ) pegamos o
que começa com 4 digitos ou mais e termina após estes.
Se vc não tiver acesso ao passwd, mas tiver acesso ao /home, pode fazer:
$ find /home/ -type d -maxdepth 1 | xargs stat --format=%u | grep -Eo
'^[0-9]{4,}$'
1000
1001
10000
1002
Ou seja, procurar no /home (find /home) por diretórios (-type d) em no
máximo 1 nível(-maxdepth 1) e para cada entrada(xargs) mostrar o UID
do próprietário do arquivo(stat --format=%u) pegando o que começa com
quatro digitos ou mais e já termina(grep -E '^[0-9]{4,}$'). Mas além
disso ser mais demorado por causa do find, o home dos usuários podem
não ficar no /home...
Tendo acesso ao passwd, mas procurando por UIDs não tão fáceis quando
1000, o awk resolve:
$ awk -F ':' '$3 >= 1000 {print $3}' /etc/passwd
65534
1000
1001
1002
10000
Que não passa de um teste no 3º campo($3), mostrando este caso ele
seja maior que 1000.
Acho que é isso...
--
Andreyev
PS: como sempre NÂO use estes comandos em ambientes de produção sem
antes testá-los e verificar se é isto mesmo o que vc precisa.