tester si script lancé par sudo ou non
Le
unbewusst.sein
j'ai pris l'habitude de faire ça :
[ "$SUDO_USER" -a `id -u` -eq 0 ] || {
echo "Please run via sudo."
exit 1
}
echo "OK you are a SUDO_USER!"
# le script continue
je ne comprends pas bien le test :
$SUDO_USER" -a `id -u` -eq 0
parce que, si je lance le script via sudo,
id -u est à 0
si NON lancé par sudo
id -u est à 501
donc, qu'est-ce que fait "$SUDO_USER" -a là-dedans ???
en fait je voudrais une structure if then else fi
car je ferai des choses en + si le script est lancé par sudo, donc j'ai
écrit :
if [[ `id -u` -eq 0 ]]; then
echo "sudoer"
# faire ce qu'il y a à faire en tant que sudoer
else
echo "NOT sudoer"
# faire ce qu'il y a à faire en tant qu'user
fi
là dessus le "$SUDO_USER" -a " a disparu, d'où ma question
--
« Tel n'a de chaleur pour ses amis, que pour les brûler. »
(Proverbe arabe)
[ "$SUDO_USER" -a `id -u` -eq 0 ] || {
echo "Please run via sudo."
exit 1
}
echo "OK you are a SUDO_USER!"
# le script continue
je ne comprends pas bien le test :
$SUDO_USER" -a `id -u` -eq 0
parce que, si je lance le script via sudo,
id -u est à 0
si NON lancé par sudo
id -u est à 501
donc, qu'est-ce que fait "$SUDO_USER" -a là-dedans ???
en fait je voudrais une structure if then else fi
car je ferai des choses en + si le script est lancé par sudo, donc j'ai
écrit :
if [[ `id -u` -eq 0 ]]; then
echo "sudoer"
# faire ce qu'il y a à faire en tant que sudoer
else
echo "NOT sudoer"
# faire ce qu'il y a à faire en tant qu'user
fi
là dessus le "$SUDO_USER" -a " a disparu, d'où ma question
--
« Tel n'a de chaleur pour ses amis, que pour les brûler. »
(Proverbe arabe)

Poser une question

Moi je fais :
UID_ROOT=0
if [ "$UID" -ne "$UID_ROOT" ]
then
echo "Va donc, eh manant..."
else
echo "Mes hommages, vous êtes root..."
fi
(piqué dans l'ABS guide).
--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Pour faire quoi ? Pourquoi veux-tu tester si ton script a été lancé avec
sudo, et par opposition à quoi ?
Sinon, si on utilise sudo plutôt que le compte "root" pour faire les
manips délicates, autant préfixer les commandes du script par sudo.
Exemple:
#!/bin/bash
#
# chkdsk : Force le fskck et redemarre
#
sudo touch /forcefsck
sudo touch /home/forcefsck
sudo shutdown -r -F now
--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
En tant que simple user :
imyt% echo $UID
501
imyt% echo $UID_ROOT
imyt%
En tant que root :
imyt% su root
Password:
sh-3.2# echo $UID
0
sh-3.2# echo $UID_ROOT
sh-3.2#
en tant que sudoer :
imyt% sudo echo $UID
Password:
501
imyt% sudo echo $UID_ROOT
imyt%
sur Mac os x lion ça ne marcherait pas ?
--
« Tel n'a de chaleur pour ses amis, que pour les brûler. »
(Proverbe arabe)
comme simple utilisateur, les pems des fichiers enregistrés ne sont pas
les mêmes.
si le script a été lancé par sudo, je dois faire un :
chown yt:staff sur certains fichiers, sinon ils sont root:root
--
« Tel n'a de chaleur pour ses amis, que pour les brûler. »
(Proverbe arabe)