- users
+ Responder ao Tópico
-
users
Tem algum comando que eu digite, sendo root, que mostre todos os usuarios que existem no sistema com base no passwd?
faloo pessoal..
-
users
vc pode olhar o arquivo passwd
root~#cat /etc/passwd
ou
root~#ls /home
-
users
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
-
users
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..
-
users
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;
}