Tem algum comando que eu digite, sendo root, que mostre todos os usuarios que existem no sistema com base no passwd?
faloo pessoal..
Versão Imprimível
Tem algum comando que eu digite, sendo root, que mostre todos os usuarios que existem no sistema com base no passwd?
faloo pessoal..
vc pode olhar o arquivo passwd
root~#cat /etc/passwd
ou
root~#ls /home
td bem eu ja fiz isso mas eu to fazendo um programa em c.
e gostaria de saber um comando q listasse os users do sistema..
apenas os usuarios..sem o nobody..mysql..etc..
pego esse usuarios usando o sprintf
e ae
hum comando q faça isso eu não conheço, mas faz o oq o smourf disse ou se quiser um negocio mais nervoso e xique da um
cat /etc/passwd | grep /home | grep /bin/bash | cut -d: -f1 | sort
mas essa tipo "regra" supõe-se q os users do sistema estão todos em /home e usem o bash, mas se tiver user no sistema q usem consoles diferentes e so vc melhorar a expressão ok? hã e é claro ai não lista o root porq é obvio né, e ainda em ordem alfabetica espero ter ajudado
falow
kakaroto
eu fiz exatamente o q o kakaroto postou..
mas eu estava procurando uma outra solucao como algum comando sistema.
mas esse comando q ele postou funciona..
peguei este script em um dos postos, so não me recordo do autor para sitar o mesmo aqui , porém ai vai, deve te ajudar
- Antes de usar faça uma cópia do passwd.
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <string.h>
int
main(int argc, char *argv[])
{
FILE *passwd;
char str[51],*str2=(char *)malloc(256),user[256];
int x=0,ch;
if(argc < 2){
printf("Erro de sintaxe\n");
printf("Verefica help para mais informacoes: id-check -h\n");
exit(1);
}
if(setuid(0)!=0)
{
printf("\nVc nao eh root. Nao tem permissao para executar o arquivo\n");
exit(1);
}
if(!(strcmp(argv[1],"-h")))
{
printf("-l listar usuarios com ID 0\n");
printf("-d deletar usuarios com ID 0\n");
printf("Use: ./id-check [opcao]\n");
}
else if(!strcmp(argv[1],"-l"))
{
sprintf(str,"%s","cat /etc/passwd | grep :0:0: | tac | cut -d':' -f1");
passwd = popen(str,"r");
printf("Usuario(s) encontrado(s) com id 0 (root):\n");
rewind(passwd);
while((ch=fgetc(passwd))>0)
{
if(ch!='\n' && ch!='\r'){
sprintf(str2,"%s%c",str2,ch);
}
else{
printf("%s",str2);
sprintf(str2,"%c",ch);
}
}
printf("\n");
pclose(passwd);
}
else if(!strcmp(argv[1],"-d")){
printf("O usuario root nao serah deletado. OK?\n");
sprintf(str,"%s","cat /etc/passwd | grep :0:0: | tac | cut -d':' -f1");
passwd = popen(str,"r");
rewind(passwd);
while((ch=getc(passwd))!=EOF)
{
if(ch!='\n' && ch!='\r'){
sprintf(str2,"%s%c",str2,ch);
}
else{
if(strcmp(str2,"root")){
sprintf(user,"%s%s%c","userdel ",str2,ch);
system(user);
strcpy(str2,"\0");
}
}
}
pclose(passwd);
}
else printf("Erro de sintaxe\n");
return 0;
}