-
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;
}