Bonjour je débute dans la programmation sous linux et je cherche comment ajouter un utilisateur et lui donner toute les permissions en C++.j'ai besoin d'avoir accès a tous les fichiers du pc Sous Linux.C pour un explorateur multimédia
Merci
Bonjour je débute dans la programmation sous linux et je cherche comment ajouter un utilisateur et lui donner toute les permissions en C++.j'ai besoin d'avoir accès a tous les fichiers du pc Sous Linux.C pour un explorateur multimédia
Merci
Le soucis que pour créer un utilisateur, il faut être root ou que le programme est un suid. Donc le programme doit être très bien fait, sinon il y a risque de corruption du système.
Généralement pour créer un utilisateur, on fait appelle au programme adduser ou useradd. Tu peux appellé un programme avec exec ou system.
Ensuite tu demande que cet utilisateur est tout les droits. Le seul qui l'est c'est uniquement root.
Pour un explorateur multimédia, tu n'as pas besoin de tout ça. Tu exécute ton explorateur dans la session de l'utilisateur qui exécute le programme (donc ces droits).
Tu n'aurai pas un exemple de code?
Et j'aimerai pouvoir l'executer en ayant tous les droits.
Comme celà tous le monde pourra l'utiliser.
Donc ce sera une machine sans droit (enfin si, tout le monde aura tous les droits).
Une autre solution : "chmod -R 777 /", et là, pas de code à développer, tu passes la commande une seule fois et tous les utilisateurs ont accès à tous les fichiers et répertoires.
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
CafuroCafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbeUn logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
Oui mais c'est fixe?
Je voudrai seulement avoir les droits le temps que le programme tourne et supprimer ces droits quand le programme se ferme. De façon a ne pas modifier le système.
Alors, il faut que ce programme ait le bit setuid root positionné comme cela, il s'exécutera toujkours en tant que root
Raymond
Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi
CafuroCafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
e-verbeUn logiciel de conjugaison des verbes de la langue française.
Ma page personnelle sur DVP.
Arf, je croyais que tu parlais de tout les droits pour l'utilisateur. Alors que tu parlais du programme.
Pour ajouter un utilisateur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> extern char ** environ; int main (void) { char * argv[] = {"useradd", "-m" , "my_user"}; // Les arguments a transmettre au programme fprintf(stdout, "Ajout de l'utilisateur"); execve("/usr/sbin/useradd", argv, environ); // Execution du programme fprintf(stdout, "Raté : erreur = %d\n", errno); // Affiche l'erreur return 0; }
Pour changer les droits d'un programme :
int chmod (const char * nom_fichier, mode_t mode); // Changer le mode
int access (const char * nom_fichier, int mode); // Pour vérifier les droits
F_OK Le fichier existe-t-il ?
R_OK Puis-je lire le contenu du fichier ?
W_OK Puis-je écrire dans le fichier ?
X_OK Puis-je exécuter le fichier ?
Exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <errno.h> #include <sys/stat.h> int main() { if (!chmod ("/tmp/exemple.c", 0777)) printf("OK"); else fprintf(stdout, "Raté : erreur = %d\n", errno); // Affiche l'erreur }
Partager