begin process at 2012 05 26 06:22:24
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > MODE CONSOLE DE LINUX

MODE CONSOLE DE LINUX


 Description

Cliquez pour voir la capture en taille normale
Ce programme  fait  une simulation de la gestion d’utilisateur  sous  linux  et se présente comme suit:        
A la première  utilisation  on  crée  root, pour cela on  demande le  son mot de  passe, son nom et
son prénom. Le login sera ‘’root’’  et, l’uid  ainsi que  le  gid  sont à 0.
Quand  le user  se connecte pour  la  première  fois  le manuel  est  affiché  et ,après  l’appui
  d’une  touche il a une ligne  de commande  ou il  pourra  effectuer   ses  différentes
opérations.
                                                                MANUEL
                                        Processus        :   commande   paramètre
           Pour
                         L’ajout  d'un utilisateur:   adduser   <nom_user>
                          Suppression  d'1  user:   deluser   <nom_user>
                              recherche  d'1  user:   search     <nom_user>
                             affichage  des  users:   ls
                          affichage  par  groupe:    lsgid
                                   changer  de  user:   su    <nom_user>
                          changer  de  groupe:   sg
changer de mot de  passe(user connecté):   passwd
                                    deconnexion  :  shutdown
                             nombre  de  users:  nbuser
                           manuel  des cmdes:  man
                                  effacer  l'écran:  clear
                                             QUITTER: exit

NB :
          Les cmdes  dont  les  parametres ne sont  pas  specifies  s’exécutent  sans  paramètres.

Source

  • #include<stdio.h>
  • #include<conio.h>
  • #include<stdlib.h>
  • #include<string.h>
  • #include<dos.h>
  • #include<time.h>
  • typedef struct user{
  • char id[20];
  • int uid;
  • char mp[20];
  • int gid;
  • char nom[20];
  • char prenom[20];
  • user *suiv;
  • }user;
  • user *tete,*corps,*queue;
  • int uid=500;
  • char ncmd[20],pcmd[20];
  • void remplir()
  • {char c;
  • int i=0,x,y;
  • queue->uid=++uid;
  • randomize();
  • queue->gid=rand()%1000;
  • printf("Mot de passe:");
  • while((c=getch())!='\r')
  • {
  • if(c=='\b')
  • {
  • if(i!=0)
  • i--;
  • printf("\b");
  • clreol();
  • }
  • else
  • {
  • queue->mp[i]=c;
  • printf("*");
  • i++;
  • }
  • }
  • queue->mp[i]='\0';
  • printf("\n NOM :");
  • scanf("%s",queue->nom);
  • printf("PRENOM:");
  • scanf("%s",queue->prenom);
  • }
  • void creation()
  • {char c;
  • int i=0,j,x,y;
  • clrscr();
  • tete=NULL;
  • delay(800);
  • printf("\n\n\n\n\n\n\n\nCr‚ation du compte root");
  • for(j=1;j<=10;j++)
  • {
  • printf(". ");delay(100); }
  • clrscr();
  • tete=(user*)malloc(sizeof(user));
  • strcpy(tete->id,"root");
  • tete->uid=0;
  • tete->gid=0;
  • printf("Mot de passe:");
  • while((c=getch())!='\r')
  • {
  • if(c=='\b')
  • { if(i!=0)
  • {
  • i--;
  • printf("\b");
  • clreol();
  • }
  • }
  • else
  • {
  • tete->mp[i]=c;
  • printf("*");
  • i++;
  • }
  • }
  • tete->mp[i]='\0';
  • printf("\n NOM :");
  • scanf("%s",tete->nom);
  • printf("PRENOM:");
  • scanf("%s",tete->prenom);
  • tete->suiv=NULL;
  • queue=tete;
  • }
  • void adduser(char id[20])
  • {
  • if(strcmp(tete->id,id)==0)
  • printf("vous ne pouvez pas recr‚er root\n");
  • else
  • {
  • queue->suiv=(user*)malloc(sizeof(user));
  • queue=queue->suiv;
  • strcpy(queue->id,id);
  • remplir();
  • queue->suiv=NULL;
  • }
  • }
  • int search_user_by_id(char *idr)
  • {
  • int bool=0;
  • corps=tete;
  • while(corps!=NULL)
  • {
  • if(strcmp(corps->id,idr)==0)
  • {bool=1;
  • break;
  • }
  • else
  • corps=corps->suiv;
  • }
  • return bool;
  • }
  • int verification(char *id,char *mp)
  • {
  • int bool=0;
  • corps=tete;
  • while(corps!=NULL)
  • {
  • if((strcmp(corps->id,id)==0)&&(strcmp(corps->mp,mp)==0))
  • {bool=1;
  • break;
  • }
  • else
  • corps=corps->suiv;
  • }
  • return bool;
  • }
  • void deluser(char *supp)
  • {
  • user *p1,*p2;
  • if(strcmp(tete->id,supp)==0)
  • printf("\nvous ne pouvez pas supprimer root \n");
  • else
  • {
  • if(search_user_by_id(supp)==1)
  • {
  • p1=tete; p2=tete->suiv;
  • while((p2->suiv!=NULL)&&(strcmp(p2->id,supp)!=0))
  • {
  • p1=p2; p2=p2->suiv;
  • }
  • p1->suiv=p2->suiv;
  • if(p1->suiv==NULL)
  • queue=p1;
  • free(p2);
  • }
  • else
  • printf("Suppression impossible:Ce user n'existe pas");
  • }
  • }
  • void list_user()
  • {
  • corps=tete;
  • printf("id:uid:mot de passe:gid:nom prenom\n");
  • while(corps!=NULL)
  • {
  • printf("%s : %d : %d : %d : %s : %s \n",corps->id,corps->uid,0,corps->gid,corps->nom,corps->prenom);
  • corps=corps->suiv;
  • }
  • }
  • int nb_user()
  • {
  • int i=0;
  • corps=tete;
  • while(corps!=queue->suiv)
  • {
  • i++;
  • corps=corps->suiv;
  • }
  • return i;
  • }
  • ////////////////////////
  • void list_by_gid()
  • {int n1,n=nb_user(),i=0,t[20],j,k;
  • corps=tete;
  • while(corps!=NULL)
  • {t[i]=corps->gid; corps=corps->suiv;
  • i++;
  • }
  • n1=n=i;
  • for(k=0;k<n-1;k++)
  • {
  • for(i=k+1;i<n;i++)
  • if(t[k]==t[i])
  • {
  • for(j=i;j<n;j++)
  • {
  • t[j]=t[j+1];
  • n1--;
  • }
  • }
  • }
  • printf("\n------------------------------- \n");
  • i=0;
  • while(i<n1)
  • {
  • corps=tete;
  • printf("Groupe %d: ",t[i]);
  • do
  • {
  • if(corps->gid==t[i])
  • printf("%s \t",corps->id);
  • corps=corps->suiv;
  • }
  • while(corps!=NULL);
  • printf("\n-------------------------------\n");
  • i++;
  • }
  • }
  • void menu()
  • {
  • clrscr();
  • printf(" MANUEL\n");
  • printf(" processus : commande\n\n");
  • printf(" ajout d'un user: adduser <nom_user>\n");
  • printf(" suppression d'1 user: deluser <nom_user>\n");
  • printf(" recherche d'1 user: search <nom_user>\n");
  • printf(" affichage des users: ls\n");
  • printf(" affichage par groupe: lsgid\n");
  • printf(" changer de user: su <nom_user>\n");
  • printf(" changer de groupe: sg\n");
  • printf(" changer de mot de passe: passwd\n");
  • printf(" deconnexion: shutdown\n");
  • printf(" nombre de users: nbuser\n");
  • printf(" manuel des cmdes: man\n");
  • printf(" effacer l'ecran: clear\n");
  • printf(" QUITTER: exit\n");
  • }
  • ////////////
  • void presentation()
  • {
  • int i=0;
  • clrscr();
  • printf("\n\n\n\n\n\n\n\n\n\n\n\ **************");delay(500);
  • printf(" BIENVENUE ");delay(500);printf("**************");delay(500);
  • clrscr(); printf("\n\n\n\n\n\nPROJET ALGO\n\n"); delay(500);clrscr();
  • printf("\n\n\n\THEME:GESTION D'UTILISATEURS SOUS LINUX\n\n");delay(1000);
  • printf(" AUTEURS: \n\n ALOU MOUSTAPHA.BAH\n && \n MARIAM MOUNTAGHA TOURE\n");
  • printf("\n\n\nAPPUYER SUR 1 TOUCHE POUR CONTINUER:");
  • getch();
  • clrscr();
  • for(i=1;i<=10;i++)
  • {
  • printf(". ");delay(100); }
  • clrscr();
  • }
  • ////////////////////
  • void goodbye()
  • {int i;
  • clrscr();
  • printf("\n\n\n\n\n\n\n\n\n");
  • for(i=1;i<=7;i++)
  • {
  • printf(". ");delay(200); }
  • printf("fermeture");
  • for(i=1;i<=7;i++)
  • {
  • printf(". ");delay(200); } delay(2000);
  • clrscr();
  • printf("\n\n\n\n\n\n\n\n\n\n A\n");
  • delay(100); gotoxy(wherex()+1,wherey()-1);
  • printf(" U");
  • delay(100); gotoxy(wherex()+1,wherey()-1);
  • printf(" R");
  • delay(100); gotoxy(wherex()+1,wherey()-1);
  • textcolor(142);
  • printf(" E");
  • delay(100); gotoxy(wherex()+1,wherey()-1);
  • printf(" V");
  • delay(100); gotoxy(wherex()+1,wherey()-1);
  • printf(" O");
  • delay(100); gotoxy(wherex()+1,wherey()-1);
  • printf(" I");
  • delay(100); gotoxy(wherex()+1,wherey()-1);
  • printf(" R");
  • delay(500);
  • clrscr();
  • printf("\n\n\n\n\n\n\n A\n");
  • delay(100);
  • printf(" U\n");
  • delay(100);
  • printf(" R\n");
  • delay(100);
  • textcolor(130);
  • printf(" E\n");
  • delay(100);
  • printf(" V\n");
  • textcolor(132);
  • delay(100);
  • printf(" O\n");
  • delay(100);
  • printf(" I\n");
  • delay(100);
  • printf(" R\n");
  • delay(2000);
  • }
  • ///////////////////
  • void main()
  • {
  • char *c,*supp,*p,*idr,a,b,*log;
  • int i,j,k,x=0;
  • clrscr();
  • textmode(1);textcolor(15);
  • presentation();
  • printf("\n\n\n\n\n\n\n Vs devez cr‚er Root pour commencer\n");
  • printf("\n\n\nAPPUYER SUR 1 TOUCHE POUR CONTINUER:");
  • getch();
  • creation();
  • clrscr();
  • textmode(2);textcolor(15);
  • printf("login:");
  • scanf("%s",c);
  • do
  • {
  • i=0;
  • printf("Mot de passe:");
  • while((a=getch())!='\r')
  • {
  • if(a=='\b')
  • { if(i!=0)
  • i--;
  • printf("\b");
  • clreol();
  • }
  • else
  • {
  • p[i]=a;
  • printf("*");
  • i++;
  • }
  • }
  • p[i]='\0';
  • if(verification(c,p)!=1)
  • {
  • printf("\nlogin ou mot de passe incorrect\n");
  • printf("login:");
  • scanf("%s",c);
  • }
  • else
  • {
  • if(x==0)
  • {
  • for(i=1;i<=11;i++)
  • {
  • printf(". ");delay(200); }
  • printf("\n");
  • textcolor(15);
  • menu();
  • printf("\nAPPUYER SUR 1 TOUCHE POUR CONTINUER:");
  • getch();
  • printf("\n\n please wait:");
  • for(i=1;i<=40;i++)
  • {
  • printf(". ");delay(200); }
  • clrscr();
  • x=1;
  • }
  • else printf("\n");
  • do
  • {
  • cprintf("#%s@localhost:\\>",c);
  • j=0;
  • while(((b=getchar())!=' ')&&(b!='\n'))
  • {ncmd[j]=b;j++;
  • }
  • ncmd[j]='\0';
  • {
  • if(strcmp(ncmd,"adduser")==0)
  • {if(strcmp(c,"root")==0)
  • {k=0;
  • while((a=getchar())!='\n')
  • {pcmd[k]=a;k++;
  • }
  • pcmd[k]='\0';
  • adduser(pcmd); getch();
  • strcpy(ncmd,"\0");
  • }
  • else
  • {printf("Seul root dispose des autorisations necessaires\n"); getch(); }
  • }
  • else
  • if(strcmp(ncmd,"deluser")==0)
  • {
  • clrscr();
  • if(strcmp(c,"root")==0)
  • {
  • k=0;
  • while((a=getchar())!='\n')
  • {pcmd[k]=a;k++;
  • }
  • pcmd[k]='\0';
  • strcpy(supp,pcmd);
  • deluser(supp);
  • }
  • else {printf("Seul root dispose des autorisations necessaires\n");
  • getch(); }
  • }
  • if(strcmp(ncmd,"search")==0)
  • {
  • k=0;
  • while((b=getchar())!='\n')
  • {pcmd[k]=b;k++;
  • }
  • pcmd[k]='\0';
  • strcpy(idr,pcmd);
  • if(search_user_by_id(idr)!=1)
  • printf("\nUtilisateur non pr‚sent\n");
  • else
  • printf("\nUtilisateur pr‚sent\n");
  • getch();
  • }
  • else
  • if(strcmp(ncmd,"ls")==0)
  • {list_user(); getch();}
  • else
  • if(strcmp(ncmd,"lsgid")==0)
  • {list_by_gid();getch();}
  • else
  • if(strcmp(ncmd,"nbuser")==0)
  • {printf("Le nombre de users est: %d \n",nb_user());getch();}
  • else
  • if(strcmp(ncmd,"sg")==0)
  • {printf("entrez votre nouveau gid:");
  • if(search_user_by_id(c)==1)
  • scanf("%d",&corps->gid);
  • getch();}
  • else
  • if(strcmp(ncmd,"passwd")==0)
  • {printf("entrez votre ancien mot passe:");
  • i=0;
  • while((a=getch())!='\r')
  • {
  • if(a=='\b')
  • { if(i!=0)
  • i--;
  • printf("\b");
  • clreol();
  • }
  • else
  • {
  • p[i]=a;
  • printf("*");
  • i++;
  • }
  • }
  • p[i]='\0';
  • if(search_user_by_id(c)==1)
  • {
  • if(strcmp(corps->mp,p)==0)
  • {
  • printf("\nentrez votre nouveau mot passe:");
  • i=0;
  • while((a=getch())!='\r')
  • {
  • if(a=='\b')
  • { if(i!=0)
  • i--;
  • printf("\b");
  • clreol();
  • }
  • else
  • {
  • p[i]=a;
  • printf("*");
  • i++;
  • }
  • }
  • p[i]='\0';
  • strcpy(corps->mp,p);
  • printf("\n");
  • }
  • else
  • printf("\nle mot de passe n'est pa bon r‚essayer une autre fois\n");
  • }
  • getch();}
  • else
  • if((strcmp(ncmd,"su"))==0)
  • { k=0;
  • while((a=getchar())!='\n')
  • {pcmd[k]=a;k++;
  • }
  • pcmd[k]='\0';
  • if(k==0)
  • {strcpy(c,"root");break;}
  • else
  • {strcpy(log,c);
  • strcpy(c,pcmd);
  • if(strcmp(log,"root")!=0)
  • break;}
  • }
  • else
  • if((strcmp(ncmd,"man"))==0)
  • {menu();getch();}
  • else
  • if((strcmp(ncmd,"shutdown"))==0)
  • {clrscr(); printf("login:");scanf("%s",c);break; }
  • else
  • if((strcmp(ncmd,"clear"))==0)
  • clrscr();
  • else
  • if((strcmp(ncmd,"exit"))==0)
  • {textmode(1);textcolor(130);goodbye();exit(0);}
  • else
  • if((strcmp(ncmd,""))==0)
  • {gotoxy(1,wherey());clreol();
  • }
  • else
  • printf("command not found\n");
  • }
  • }while((strcmp(ncmd,"shutdown"))!=0);
  • }
  • }while((strcmp(ncmd,"exit"))!=0);
  • }
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<dos.h>
#include<time.h>
typedef struct user{
char id[20];
int uid;
char mp[20];
int gid;
char nom[20];
char prenom[20];
user *suiv;
}user;
user *tete,*corps,*queue;
int uid=500;
char ncmd[20],pcmd[20];
void remplir()
{char c;
int i=0,x,y;
queue->uid=++uid;
randomize();
queue->gid=rand()%1000;
printf("Mot de passe:");
while((c=getch())!='\r')
		  {
		  if(c=='\b')
		      {
			if(i!=0)
			     i--;
			  printf("\b");
			 clreol();
			  }
		  else
			{
			queue->mp[i]=c;
			printf("*");
			  i++;
			}
		  }
queue->mp[i]='\0';
printf("\n NOM :");
scanf("%s",queue->nom);
printf("PRENOM:");
scanf("%s",queue->prenom);
}
void   creation()
{char c;
int i=0,j,x,y;
clrscr();
tete=NULL;
delay(800);
printf("\n\n\n\n\n\n\n\nCr‚ation du compte root");
for(j=1;j<=10;j++)
{
printf(". ");delay(100); }
clrscr();
		 tete=(user*)malloc(sizeof(user));
		 strcpy(tete->id,"root");
		  tete->uid=0;
		  tete->gid=0;
		   printf("Mot de passe:");
		  while((c=getch())!='\r')
		  {
		  if(c=='\b')
			  { if(i!=0)
			     {
			     i--;
			  printf("\b");
			 clreol();
			  }
			  }
		  else
		      {
		  tete->mp[i]=c;
		   printf("*");
		     i++;
		       }
		  }
		    tete->mp[i]='\0';
		 printf("\n NOM :");
		     scanf("%s",tete->nom);
		     printf("PRENOM:");
		     scanf("%s",tete->prenom);
tete->suiv=NULL;
queue=tete;
}

void adduser(char id[20])
{

if(strcmp(tete->id,id)==0)
printf("vous ne pouvez pas recr‚er root\n");
			else
			{
		       queue->suiv=(user*)malloc(sizeof(user));
		       queue=queue->suiv;
		       strcpy(queue->id,id);
		       remplir();
		       queue->suiv=NULL;
		       }
}
int  search_user_by_id(char *idr)
{
int bool=0;
corps=tete;
		       while(corps!=NULL)
		     {
			if(strcmp(corps->id,idr)==0)
		       {bool=1;
			break;
			}
		       else
		       corps=corps->suiv;
		     }
	   return bool;
}


int  verification(char *id,char *mp)
{
int bool=0;
corps=tete;
		       while(corps!=NULL)
		     {
		      if((strcmp(corps->id,id)==0)&&(strcmp(corps->mp,mp)==0))
		       {bool=1;
			break;
			}
		       else
		       corps=corps->suiv;
		     }
	   return bool;
}
void deluser(char *supp)
{
user *p1,*p2;
		      if(strcmp(tete->id,supp)==0)
			printf("\nvous ne pouvez pas supprimer root \n");
		      else
		       {
		       if(search_user_by_id(supp)==1)
		       {
		       p1=tete;     p2=tete->suiv;
		       while((p2->suiv!=NULL)&&(strcmp(p2->id,supp)!=0))
		       {
			p1=p2;  p2=p2->suiv;
			}
			p1->suiv=p2->suiv;
			if(p1->suiv==NULL)
			queue=p1;
			free(p2);
			}
			else
			printf("Suppression impossible:Ce user n'existe pas");
			}
}
void     list_user()
{
corps=tete;
printf("id:uid:mot de passe:gid:nom prenom\n");
while(corps!=NULL)
{
printf("%s : %d : %d : %d : %s : %s \n",corps->id,corps->uid,0,corps->gid,corps->nom,corps->prenom);
corps=corps->suiv;
}

}
int  nb_user()
{
int i=0;
corps=tete;
while(corps!=queue->suiv)
{
i++;
corps=corps->suiv;
}
return i;
}

////////////////////////
void list_by_gid()
{int n1,n=nb_user(),i=0,t[20],j,k;
corps=tete;
while(corps!=NULL)
{t[i]=corps->gid; corps=corps->suiv;
i++;
}
n1=n=i;
for(k=0;k<n-1;k++)
{
for(i=k+1;i<n;i++)
if(t[k]==t[i])
		{
		for(j=i;j<n;j++)
		{
		t[j]=t[j+1];
		n1--;
		}
		}
}
printf("\n------------------------------- \n");
i=0;
while(i<n1)
{
corps=tete;
printf("Groupe %d: ",t[i]);
do
{
if(corps->gid==t[i])
printf("%s \t",corps->id);
corps=corps->suiv;
}
while(corps!=NULL);
printf("\n-------------------------------\n");
i++;
}
}

void     menu()
{
clrscr();
printf("                          MANUEL\n");
printf("                processus : commande\n\n");
printf("           ajout d'un user: adduser <nom_user>\n");
printf("      suppression d'1 user: deluser <nom_user>\n");
printf("        recherche d'1 user: search <nom_user>\n");
printf("       affichage des users: ls\n");
printf("      affichage par groupe: lsgid\n");
printf("           changer de user: su <nom_user>\n");
printf("         changer de groupe: sg\n");
printf("   changer de mot de passe: passwd\n");
printf("               deconnexion: shutdown\n");
printf("           nombre de users: nbuser\n");
printf("          manuel des cmdes: man\n");
printf("           effacer l'ecran: clear\n");
printf("                   QUITTER: exit\n");
}
////////////
void   presentation()
{
int i=0;
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\n\ **************");delay(500);
printf(" BIENVENUE ");delay(500);printf("**************");delay(500);
clrscr(); printf("\n\n\n\n\n\nPROJET  ALGO\n\n"); delay(500);clrscr();
printf("\n\n\n\THEME:GESTION D'UTILISATEURS SOUS LINUX\n\n");delay(1000);
printf("             AUTEURS: \n\n ALOU MOUSTAPHA.BAH\n         && \n MARIAM MOUNTAGHA TOURE\n");
printf("\n\n\nAPPUYER SUR 1 TOUCHE POUR CONTINUER:");
getch();
clrscr();
for(i=1;i<=10;i++)
{
printf(". ");delay(100); }
clrscr();
}
////////////////////
void  goodbye()
{int i;
clrscr();
printf("\n\n\n\n\n\n\n\n\n");
for(i=1;i<=7;i++)
{
printf(". ");delay(200); }
printf("fermeture");
for(i=1;i<=7;i++)
{
printf(". ");delay(200); } delay(2000);
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n A\n");
delay(100); gotoxy(wherex()+1,wherey()-1);
printf(" U");
delay(100); gotoxy(wherex()+1,wherey()-1);
printf(" R");
delay(100); gotoxy(wherex()+1,wherey()-1);
textcolor(142);
printf(" E");
delay(100); gotoxy(wherex()+1,wherey()-1);
printf(" V");
delay(100);          gotoxy(wherex()+1,wherey()-1);
printf(" O");
delay(100);          gotoxy(wherex()+1,wherey()-1);
printf(" I");
delay(100);          gotoxy(wherex()+1,wherey()-1);
printf(" R");
delay(500);
clrscr();
printf("\n\n\n\n\n\n\n  A\n");
delay(100);
printf("    U\n");
delay(100);
printf("      R\n");
delay(100);
textcolor(130);
printf("        E\n");
delay(100);
printf("          V\n");
textcolor(132);
delay(100);
printf("            O\n");
delay(100);
printf("              I\n");
delay(100);
printf("                R\n");
delay(2000);
}
///////////////////
void main()
{
char *c,*supp,*p,*idr,a,b,*log;
int i,j,k,x=0;
clrscr();
textmode(1);textcolor(15);
presentation();
printf("\n\n\n\n\n\n\n     Vs devez cr‚er Root pour commencer\n");
printf("\n\n\nAPPUYER SUR 1 TOUCHE POUR CONTINUER:");
getch();

creation();
clrscr();
textmode(2);textcolor(15);
printf("login:");
scanf("%s",c);
do
{
i=0;
printf("Mot de passe:");
while((a=getch())!='\r')
		  {
		  if(a=='\b')
			  { if(i!=0)
			     i--;
			      printf("\b");
			 clreol();
			  }
		  else
		      {
		  p[i]=a;
		  printf("*");
		  i++;
		  }
	      }
p[i]='\0';
if(verification(c,p)!=1)
{
printf("\nlogin ou mot de passe incorrect\n");
printf("login:");
scanf("%s",c);
}
else
{
if(x==0)
{
for(i=1;i<=11;i++)
{
printf(". ");delay(200); }
printf("\n");
textcolor(15);
menu();
printf("\nAPPUYER SUR 1 TOUCHE POUR CONTINUER:");
getch();
printf("\n\n please wait:");
for(i=1;i<=40;i++)
{
printf(". ");delay(200); }
clrscr();
x=1;
}
else printf("\n");
do
{
cprintf("#%s@localhost:\\>",c);
j=0;
while(((b=getchar())!=' ')&&(b!='\n'))
{ncmd[j]=b;j++;
}
ncmd[j]='\0';
{
if(strcmp(ncmd,"adduser")==0)
{if(strcmp(c,"root")==0)
{k=0;
while((a=getchar())!='\n')
{pcmd[k]=a;k++;
}
pcmd[k]='\0';
adduser(pcmd);  getch();
strcpy(ncmd,"\0");
}
else
{printf("Seul root dispose des autorisations necessaires\n");   getch(); }

}
else
if(strcmp(ncmd,"deluser")==0)
{
clrscr();
if(strcmp(c,"root")==0)
{
k=0;
while((a=getchar())!='\n')
{pcmd[k]=a;k++;
}
pcmd[k]='\0';
strcpy(supp,pcmd);
deluser(supp);
}
else {printf("Seul root dispose des autorisations necessaires\n");
getch(); }
}
if(strcmp(ncmd,"search")==0)
{
k=0;
while((b=getchar())!='\n')
{pcmd[k]=b;k++;
}
pcmd[k]='\0';
strcpy(idr,pcmd);
if(search_user_by_id(idr)!=1)
printf("\nUtilisateur non pr‚sent\n");
else
printf("\nUtilisateur pr‚sent\n");
getch();
}
else
if(strcmp(ncmd,"ls")==0)
{list_user(); getch();}
else
if(strcmp(ncmd,"lsgid")==0)
{list_by_gid();getch();}
else
if(strcmp(ncmd,"nbuser")==0)
{printf("Le nombre de users est: %d \n",nb_user());getch();}
else
if(strcmp(ncmd,"sg")==0)
{printf("entrez votre nouveau gid:");
if(search_user_by_id(c)==1)
scanf("%d",&corps->gid);
getch();}
else
if(strcmp(ncmd,"passwd")==0)
{printf("entrez votre ancien mot passe:");
i=0;
while((a=getch())!='\r')
		  {
		  if(a=='\b')
			  { if(i!=0)
			     i--;
			      printf("\b");
			 clreol();
			  }
		  else
		      {
		  p[i]=a;
		  printf("*");
		  i++;
		  }
	      }
p[i]='\0';
if(search_user_by_id(c)==1)
   {
   if(strcmp(corps->mp,p)==0)
    {
    printf("\nentrez votre nouveau mot passe:");
    i=0;
    while((a=getch())!='\r')
		  {
		  if(a=='\b')
			  { if(i!=0)
			     i--;
			      printf("\b");
			 clreol();
			  }
		  else
		      {
		  p[i]=a;
		  printf("*");
		  i++;
		  }
	      }
p[i]='\0';
strcpy(corps->mp,p);
printf("\n");
    }
  else
  printf("\nle mot de passe n'est pa bon r‚essayer une autre fois\n");
    }
getch();}
else
if((strcmp(ncmd,"su"))==0)
{  k=0;
while((a=getchar())!='\n')
{pcmd[k]=a;k++;
}
pcmd[k]='\0';
if(k==0)
{strcpy(c,"root");break;}
else
{strcpy(log,c);
strcpy(c,pcmd);
if(strcmp(log,"root")!=0)
break;}
}
else
if((strcmp(ncmd,"man"))==0)
{menu();getch();}
else
if((strcmp(ncmd,"shutdown"))==0)
{clrscr(); printf("login:");scanf("%s",c);break; }
else
if((strcmp(ncmd,"clear"))==0)
clrscr();
else
if((strcmp(ncmd,"exit"))==0)
			  {textmode(1);textcolor(130);goodbye();exit(0);}
else
if((strcmp(ncmd,""))==0)
{gotoxy(1,wherey());clreol();
}
else
printf("command not found\n");
}
}while((strcmp(ncmd,"shutdown"))!=0);
}
}while((strcmp(ncmd,"exit"))!=0);

}


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

AS3 - CHARGER UNE IMAGE EXTERNE, L'UTILISER PLUSIEURS FOIS (... par SuperChouquette
Source avec Zip Source avec une capture PHP COUNTER EVOLUTION par top30
Source avec Zip DISTRIBUTION D'OBJETS par top30
Source avec Zip Source avec une capture MULTI-DEBRID par remy2501
Source avec Zip Source avec une capture BREVET - POINT - MENTION par kekoune

Commentaires et avis

Commentaire de coucou747 le 21/06/2009 13:07:12 administrateur CS

tu devrais indenter ton programme, la il est illisible.

Commentaire de uaip le 22/06/2009 16:12:00

Salut, illisible tout comme la description (même si ce n'est pas ta faute). Tout comme le manque d'efforts sur l'orthographe et la grammaire des textes. =/

Commentaire de beg0 le 26/06/2009 03:49:38

salut
Pour augmenter la clarté de ton code, tu devrais (vous devriez) aussi utiliser plusieurs fichiers sources, commenter ton code, et, mais c'est peut être une question de gouts personnels, séparer ton code en plus de fonction que ça ! J'en ai compté 12 en tout, ca me parait peu pour une source de plus de 500 lignes.
Sinon y'a des trucs qui servent absolument a RIEN ! comme ca :

# for(j=1;j<=10;j++)
# {
# printf(". ");delay(100); }
# clrscr();
(lignes 55 et suivantes)
a part faire perd du temps a l'utilisateur... je vois pas l'intérêt de la chose.

Et puis si j'ai bien compris c'est un projet scolaire. Ne crois pas que ton prof va t'évaluer sur l'aspect "joli" de l'interface utilisateur.  Ca sert a rien de lui en mettre "plein la vue", il sait surement faire ca mieux que toi. Ce qui est important c'est que ton code soit propre, clair et qu'il marche, SANS BUG. d'ailleurs, je ne vois jamais quand est ce que tu alloues ta mémoire dans main(), et encore moins quand tu testes les dépassements mémoire. Je me demande comment ton code peux marcher !

Bref, désolé mais t'as encore du pain sur la planche !

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,997 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales