J'apprends actuellement les bases de Linux avec Ubuntu et il y a une petite activité où j'ai besoin de trouver des informations sur les variables d'environnement. J'ai déjà trouvé des informations 6/7 mais je ne trouve tout simplement pas SUDO_COMMAND
. voici comment se déroule la liste:
SHELL=/bin/bash
USER=student
SUDO_COMMAND=
PWD=/home
HOME=/home/student
LOGNAME=student
OLDPWD=/home/student
J'ai remarqué que les informations sont en ordre et qu'elles se SUDO_COMMAND
situent entre l'utilisateur et pwd. ai-je fait une erreur quelque part?
command-line
sudo
kyle cruz
la source
la source
Réponses:
SUDO_COMMAND
est une variable d'environnement définie parsudo
uniquement dans l'environnement du processus démarré par elle (et héritée par tous les processus enfants). Si vous exécutezsudo some-command arg1 arg2
, alorsSUDO_COMMAND
contiendra le chemin absolu verssome-command
, etarg1 arg2
. Si vous avez exécutésudo -s
ousudo -i
, la variable sera définie sur le shell qui a été démarré. Dans tous les cas, vous ne le verrez probablement pas en dehors d'une arborescence de processus démarrée parsudo
.Par exemple:
Ou:
Je ne sais pas quelle commande que vous utilisez, mais vous ne pouvez pas compter sur la sortie
set
,declare
,env
ouprintenv
être dans un certain ordre.la source
sudo echo $SUDO_COMMAND
pourrait être utilisé pour créer une boucle infinitive… :(Le
SUDO_COMMAND
est une variable d'environnement qui ensemble à la commande lancée par sudo .Comme mentionné par @muru - si
sudo
exécuter un nouveau shell - cette variable d'environnement sera affichée dans ce nouveau shellPlus d'informations
man sudo
fournit les détails suivants:la source
SUDO_COMMAND
n'existe que dans l'environnement démarré parsudo
, siSUDO_COMMAND
réellement où/bin/ls
, alors vous n'obtiendrez pas un shell à exécuterecho $SUDO_COMMAND
.