Récupérer le login d'un utilisateur dans un script (solaris)

Le
JKB
Bonjour à tous,

Je suis en train de bricoler un script de démarrage pour un logiciel
maison qui ne doit pas être exécuté en root mais en simple
utilisateur (pour des histoires de terminaison de processus).
J'ai donc essayé de coller dans le script en question un test sur
'who am i', mais celui-ci renvoie l'identifiant de l'utilisateur
normal au lieu de root quand celui-ci est passé root avec un su. Comment
contourner le problème ?

Cordialement,

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Ph. Ivaldi
Le #20919171
Bonjour,

Le 07 janvier 2010, JKB écrivit :
J'ai donc essayé de coller dans le script en question un test sur
'who am i', mais celui-ci renvoie l'identifiant de l'utilisateur
normal au lieu de root quand celui-ci est passé root avec un su. Comment
contourner le problème ?



Soit je ne comprends pas le problème soit il n'y a pas de problème :

[]$ whoami
pi
]$ su
Password:
[]$ whoami
root

--
Philippe Ivaldi.
http://www.piprime.fr/
Nicolas George
Le #20919161
JKB wrote in message
Je suis en train de bricoler un script de démarrage pour un logiciel
maison qui ne doit pas être exécuté en root mais en simple
utilisateur (pour des histoires de terminaison de processus).
J'ai donc essayé de coller dans le script en question un test sur
'who am i', mais celui-ci renvoie l'identifiant de l'utilisateur
normal au lieu de root quand celui-ci est passé root avec un su. Comment
contourner le problème ?



if [ -w /etc/passwd ] ?
JKB
Le #20919151
Le 07-01-2010, ? propos de
Re: Récupérer le login d'un utilisateur dans un script (solaris),
Ph Ivaldi ?crivait dans fr.comp.os.unix :
Bonjour,

Le 07 janvier 2010, JKB écrivit :
J'ai donc essayé de coller dans le script en question un test sur
'who am i', mais celui-ci renvoie l'identifiant de l'utilisateur
normal au lieu de root quand celui-ci est passé root avec un su. Comment
contourner le problème ?



Soit je ne comprends pas le problème soit il n'y a pas de problème :

[]$ whoami
pi
]$ su
Password:
[]$ whoami
root



Et bien non :

tchaikovski:[~/rpltmp] > who am i
bertrand pts/2 janv 6 14:34 (rayleigh.systella.fr)
tchaikovski:[~/rpltmp] > su -
...
Sourcing //.profile-EIS.....
# who am i
bertrand pts/2 janv 6 14:34 (rayleigh.systella.fr)
# whoami
whoami: introuvable
#

J'oubliais, c'est un solaris 10.

Cordialement,

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
JKB
Le #20919371
Le 07-01-2010, ? propos de
Re: Récupérer le login d'un utilisateur dans un? script (solaris),
Nicolas George ?crivait dans fr.comp.os.unix :
JKB wrote in message
Je suis en train de bricoler un script de démarrage pour un logiciel
maison qui ne doit pas être exécuté en root mais en simple
utilisateur (pour des histoires de terminaison de processus).
J'ai donc essayé de coller dans le script en question un test sur
'who am i', mais celui-ci renvoie l'identifiant de l'utilisateur
normal au lieu de root quand celui-ci est passé root avec un su. Comment
contourner le problème ?



if [ -w /etc/passwd ] ?



Subtil et parfaitement idiot ;-) J'aime et je note. Ça fonctionne
parfaitement, même sous Solaris !

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Benoit Izac
Le #20919361
Bonjour,

le 07/01/2010 à 15:14, JKB a écrit dans le message

Je suis en train de bricoler un script de démarrage pour un logiciel
maison qui ne doit pas être exécuté en root mais en simple
utilisateur (pour des histoires de terminaison de processus).
J'ai donc essayé de coller dans le script en question un test sur
'who am i', mais celui-ci renvoie l'identifiant de l'utilisateur
normal au lieu de root quand celui-ci est passé root avec un su. Comment
contourner le problème ?



id -u
id -un

--
Benoit Izac
Ph. Ivaldi
Le #20920401
Le 07 janvier 2010, JKB écrivit :

Et bien non :

tchaikovski:[~/rpltmp] > who am i
bertrand pts/2 janv 6 14:34 (rayleigh.systella.fr)
tchaikovski:[~/rpltmp] > su -
...
Sourcing //.profile-EIS.....
# who am i
bertrand pts/2 janv 6 14:34 (rayleigh.systella.fr)



Idem sous Debian. Je ne connaissais pas cette syntaxe pour le moins
étrange.

# whoami
whoami: introuvable



whoami du paquet coreutils, ça n'existe pas sous Solaris ?

J'oubliais, c'est un solaris 10.



Je n'avais pas fait attention au titre.

Cordialement,
--
Philippe Ivaldi.
http://www.piprime.fr/
JKB
Le #20920391
Le 07-01-2010, ? propos de
Re: Récupérer le login d'un utilisateur dans un script (solaris),
Ph Ivaldi ?crivait dans fr.comp.os.unix :
Le 07 janvier 2010, JKB écrivit :

Et bien non :

tchaikovski:[~/rpltmp] > who am i
bertrand pts/2 janv 6 14:34 (rayleigh.systella.fr)
tchaikovski:[~/rpltmp] > su -
...
Sourcing //.profile-EIS.....
# who am i
bertrand pts/2 janv 6 14:34 (rayleigh.systella.fr)



Idem sous Debian. Je ne connaissais pas cette syntaxe pour le moins
étrange.

# whoami
whoami: introuvable



whoami du paquet coreutils, ça n'existe pas sous Solaris ?



Solaris est assez tordu pour ne pas rajouter des choses
supplémentaires si on en n'a pas besoin ;-)

J'oubliais, c'est un solaris 10.



Je n'avais pas fait attention au titre.



J'aurais aussi pu répéter.

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
Stephane CHAZELAS
Le #20921591
2010-01-07, 18:36(+01), Ph Ivaldi:
Le 07 janvier 2010, JKB écrivit :


[...]
whoami: introuvable



whoami du paquet coreutils, ça n'existe pas sous Solaris ?

J'oubliais, c'est un solaris 10.



Je n'avais pas fait attention au titre.


[...]

De standard, on a:

id -u
ps -o user= -p "$$"

qui donne un username associé au user id du process courant

et

logname

qui donne le username sous lequel on s'est loggé (qui n'est pas
forcement renseigné s'il n'y a pas eu de login)

who am i

est aussi standard, mais comme pour logname, ca renvoie les
informations de login et sur la plupart des systemes, su ne cree
pas de nouvelle login session.

--
Stéphane
Cyrille Lefevre
Le #20935551
JKB a écrit :
Le 07-01-2010, ? propos de
Re: Récupérer le login d'un utilisateur dans un script (solar is),
Ph Ivaldi ?crivait dans fr.comp.os.unix :
Le 07 janvier 2010, JKB écrivit :

Et bien non :

tchaikovski:[~/rpltmp] > who am i
bertrand pts/2 janv 6 14:34 (rayleigh.systella.fr)
tchaikovski:[~/rpltmp] > su -
...
Sourcing //.profile-EIS.....
# who am i
bertrand pts/2 janv 6 14:34 (rayleigh.systella.fr)


Idem sous Debian. Je ne connaissais pas cette syntaxe pour le moins
étrange.

# whoami
whoami: introuvable


whoami du paquet coreutils, ça n'existe pas sous Solaris ?



Solaris est assez tordu pour ne pas rajouter des choses
supplémentaires si on en n'a pas besoin ;-)



Bonjour,

révisez vos classiques les gars...
ressortez vos bouquins et apprenez les par coeur !

historiquement, nous avons, pour connaitre l'utilisateur courant :

bsd : whoami, sous solaris, il doit se trouver dans /usr/ucb
sysv : id (avec options si posix)

pour connaitre l'utilisateur de connexion :

sysv/bsd : who am i (who -R am i sous HP-UX)
posix : logname (car who n'est pas portable)

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Stephane CHAZELAS
Le #20941261
2010-01-09, 17:14(+01), Cyrille Lefevre:
[...]
ressortez vos bouquins et apprenez les par coeur !

historiquement, nous avons, pour connaitre l'utilisateur courant :

bsd : whoami, sous solaris, il doit se trouver dans /usr/ucb
sysv : id (avec options si posix)

pour connaitre l'utilisateur de connexion :

sysv/bsd : who am i (who -R am i sous HP-UX)
posix : logname (car who n'est pas portable)


[...]

Ca ne repond pas a la question. On ne veut pas l'utilisateur qui
s'est loggé, mais l'utillisateur (effective euid) qui run le
process courant

POSIXement,

id -u
ps -o user= -p "$$"

"who" est sous l'option XSI dans SUS (comme ps), donc
optionnelle chez POSIX mais required chez Unix.

http://www.opengroup.org/onlinepubs/9699919799/utilities/who.html

Pour etre sur d'avoir les commandes standard (depuis un shell
standard):

command -p id -u
command -p ps -o user= -p "$$"

--
Stéphane
Publicité
Poster une réponse
Anonyme