Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Système

Système Vos questions autour de l'administration système

Réponse
 
Outils de la discussion
Vieux 23/09/2004, 14h43   #1 (permalink)
Membre régulier
 
Date d'inscription: juin 2004
Messages: 131
Par défaut Méthode ou fonction pour connaitre utilisateur

Je dois écrire un document dans le repertoire /HOME à partir d'un programme.
comment puis-je déterminé l'utisateur?
Madmac est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/09/2004, 14h51   #2 (permalink)
Expert Confirmé Sénior
 
Avatar de 2Eurocents
 
Date d'inscription: septembre 2004
Localisation: A l'ouest !!!
Âge: 38
Messages: 2 183
Par défaut

Tout ce qui ressemble de près ou de loin à who ou whoami peut t'aider.

Sinon, en shell, il y a l'expansion du tildé ... ~ désigne le homedir de l'utilisateur courant, ~user désigne le homedir de l'utilisateur user.

Bon courage.
2Eurocents est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/09/2004, 16h23   #3 (permalink)
Membre émérite
 
Avatar de torvalds17
 
Date d'inscription: mars 2004
Localisation: 92
Âge: 24
Messages: 745
Par défaut

salut

il me semble que la commande whoami indiquee par 2Eurocents va tout simplement chercher la variable d'environnement $USER non ?
__________________
référence PHP, référence JavaScript,
mettez-les dans vos marque-pages et lisez-les avant de poster ici ;-)

Mes scripts web
torvalds17 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/09/2004, 16h26   #4 (permalink)
Modérateur
 
Avatar de narmataru
 
Date d'inscription: décembre 2002
Localisation: Le Mans / Vannes
Âge: 28
Messages: 1 422
Par défaut

comme le dit 2Eurocents, le '~' désigne le home de l'utilisateur
__________________
Reportage d'Arte sur Linux
narmataru est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/09/2004, 16h32   #5 (permalink)
Membre émérite
 
Avatar de torvalds17
 
Date d'inscription: mars 2004
Localisation: 92
Âge: 24
Messages: 745
Par défaut

Citation:
Envoyé par narmataru
comme le dit 2Eurocents, le '~' désigne le home de l'utilisateur
ça, c'est quand on est dans l'environnement console, sous un shell quelconque. je sais par experience que cet alias pour la variable $HOME n'est pas valable partout (perso j'en ai fait l'experience en Java, dans un fichier de compilation Ant : ~ ne fonctionnait pas).

==> pour resumer, ton probleme a 2 solutions :
- $HOME est la variable d'environnement qui represente le repertoire perso de l'utilisateur courant
- $USER est la variable d'environnement qui represente l'utilisateur courant

il ne te reste plus qu'à recuperer les variables d'environnement dans ton langage hôte ;-)
__________________
référence PHP, référence JavaScript,
mettez-les dans vos marque-pages et lisez-les avant de poster ici ;-)

Mes scripts web
torvalds17 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/09/2004, 17h20   #6 (permalink)
Expert Confirmé Sénior
 
Avatar de 2Eurocents
 
Date d'inscription: septembre 2004
Localisation: A l'ouest !!!
Âge: 38
Messages: 2 183
Par défaut

Pour ce qui est du '~', j'avais bien précisé qu'il s'agissait de shell 8).

Sinon, il 'whoami', qui est une commande shell, tout comme 'id' (bien, aussi ), ne devrait pas retourner le contenu de variables d'environnement, et je pense qu'elle ne le fait pas. Ce serait un comportement dangereux (USER=toto, et paf, on peut pas écrire chez toto, parce qu'on est titi, ou alors, on peut parce que les permissions le permettent et on fout le bazar ...).

Donc, je déconseille formellement la lecture de ces variables d'environnement, ou alors, ne pas considérer ces informations comme fiables - franchement, vous faites confiance, vous, à des informations qui peuvent provenir de l'utilisateur ???

Ensuite 'whoami', et 'id', à mon humble avis, effectuent directement un appel système.

Faire le même appel dépend du langage d'implémentation, mais le faire en C, ça se fait avec 'getlogin' ou 'cuserid' (#include <unistd.h> et tutti quanti ...).
2Eurocents est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 23/09/2004, 17h47   #7 (permalink)
Membre régulier
 
Date d'inscription: juin 2004
Messages: 131
Par défaut

Merci 2Eurocent! C'est en plein ce que je cherchai!

Et merci autre, car cela couvre les autre cas de figure. 8)
Madmac est déconnecté   Envoyer un message privé Réponse avec citation
NEWS LINUX PROFESSIONNELFAQ LINUXTUTORIELS LINUXLIVRES LINUXLINUX TVUNIXGTK+QtAPACHE

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Système



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide