+ Responder ao Tópico



  1. #1
    Visitante

    Padrão users

    Tem algum comando que eu digite, sendo root, que mostre todos os usuarios que existem no sistema com base no passwd?
    faloo pessoal..

  2. #2

    Padrão users

    vc pode olhar o arquivo passwd

    root~#cat /etc/passwd

    ou
    root~#ls /home

  3. #3
    Visitante

    Padrão 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

  4. #4
    Kakaroto
    Visitante

    Padrão "

    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

  5. #5
    kappalinux
    Visitante

    Padrão 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..

  6. #6

    Padrão 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;

    }