shell-script-pt
[Top][All Lists]
Advanced

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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]