Visualizzazione dei risultati da 1 a 3 su 3

Discussione: C e linux

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175

    C e linux

    ciao devo fare un programma in linux che fra le varie cose mi permette di vedere se sono root o un utente normale...
    quindi devo fare qualcosa del tipo

    priv = system ("whoami");

    cioè alla variabile priv assegnare la stringa restituitami da whoami (che è o root se sono loggato come amministratore, o nome_utente se sono utente normale).
    in questo modo:

    codice:
    #include <stdio.h>
    
    main(){
    char priv, root;
    root = root;
    priv = system("whoami");
    
    if (priv != root){  
    	printf("sei utente normale");} 
    else if (priv == root) {
    	printf("sei root");}
    }
    Solo che a quanto pare alla variabile priv non viene mai assegnato il valore di whoami.

    Infatti il programma mi dice sempre:
    root
    sei utente normale
    oppure
    nome_utente
    sei utente normale

  2. #2
    Se non sbaglio, per utilizzare system() devi includere stdlib.h

    Fra l'altro credo che system non restituisca niente, dà semplicemente esecuzione al comando
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  3. #3
    Ho provato anch'io a compilarlo e mi viene fuori la tua stessa cosa.. ho provato a modificarlo ma niente. Perchè non usi !getuid() o geteuid() per determinare l'user?

    Per il !getuid():

    #include <stdio.h>
    #include <unistd.h>

    int main(){
    if(!getuid()){
    printf("Onori al root!\n");
    }
    else {
    printf("Bah... guest...\n");
    }
    return 0;
    }

    Per il geteuid():

    #include <stdio.h>
    #include <unistd.h>

    int main(){
    if(geteuid()){
    printf("Guest, benvenuto!\n");
    }
    else {
    printf("We root!\n");
    }
    return 0;
    }

    Powered by Linux

    "Windows cerca di fare Unix e ci riesce male, Red Hat cerca di fare Windows e ci riesce benissimo" (Jimmy Olgeni)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.