Utilisation structure en C sous unix

Utilisation structure en C sous unix - C++ - Programmation

Marsh Posté le 25-04-2002 à 08:56:54    

Le système utilise de nombreuses structures pour enregistrer son état:  
 
       stuctures du noyau: accessibles par les 'appels-système'  
       autres structures, enregistrées dans des fichiers, accessibles  par des fonctions fournies avec le noyau UNIX.  
 
On utilisera les structures:  
 
       "struct  passwd"  qui correspond à une ligne du fichier '/etc/passwd'  , plus le nom de l'utilisateur.  
              On y accedera par la fonction "getpwuid()"  
       "struct group" qui correspond à une ligne du fichier '/etc/group' , plus le nom du groupe.  
              On y accedera par la fonction "getgrgid()"  
       "struct stat" qui  contient les caractéristiques d'un fichier enregistrés dans le noyau.  
              On y accede par l'appel-système  "stat()"  
              On s'interessera seulement aux éléments:  
                    Numéro d'utilisateur  du propriètaire du fichier.  
                    Numéro de groupe du groupe propriètaire du fichier.  
                    Autorisations d'accès au fichier.  
 
 
 
Ecrire la commande 'autorisation' , ayant en paramètre le nom du fichier à examiner.  
La commande affiche:  
 
       le numéro d'utilisateur de la commande. (voir "getuid()" )  
       le numéro de groupe de l'utilisateur de la commande.  (voir  "getgid()" )  
 
La commande affiche:  
 
       le nom de l'utilisateur de la commande.  
       Le nom de groupe de l'utilisateur de la commande.  
 
La commande affiche:  
 
       Si l'utilisateur est propriètaire du fichier  
              "Je suis propriètaire du fichier XXX"  
              "Mes autorisations d'accès sont" (suivant les cas)  
                    "LECTURE"  
                    "ECRITURE"  
                    "EXECUTION"  
 
       Sinon si l'utilisateur est du groupe propriètaire du fichier  
              "Je suis du groupe propriètaire du fichier XXX"  
              "Mes autorisations d'accès sont" (suivant les cas)  
                    "LECTURE"  
                    "ECRITURE"  
                    "EXECUTION"  
 
       Si l'utilisateur n'appartient pas au 2 cas précedant  
              "Je suis ni propriètaire, ni du groupe propriètaire du fichier XXX"  
              "Mes autorisations d'accès sont" (suivant les cas)  
                    "LECTURE"  
                    "ECRITURE"  
                    "EXECUTION"  
 
 
 
Ecrire les fonctions:  
 
       char * nom_util(int num_util)  
              num_util  :  numéro d'utilisateur  
              restitue un pointeur sur le nom de l'utilisateur correspondant au numéro  
 
       char * nom_grp(int num_grp)  
              num_grp  :  numéro de groupe d'utilisateur  
              restitue un pointeur sur le nom de groupe d'utilisateur correspondant au numéro de groupe  
       void printmode(int  m)  
              m: autorisation d'accès obtenu de la structure stat , décalé suivant les cas de 0, 3 ou 6 bits  
              affiche:  
                    LECTURE  si  m correspond à la constante S_IREAD  
                    ECRITURE si  m correspond à la constante  S_IWRITE  
                    EXECUTION  si m  correspond à la constante   S_IEXEC

Reply

Marsh Posté le 25-04-2002 à 08:56:54   

Reply

Marsh Posté le 25-04-2002 à 09:23:02    

regarde sur osa je t ai repondu


---------------
Mes News
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed