#1 Le 28/09/2015, à 13:39
- Boombastick
[RESOLU] Utiliser variable avec su
Salut les basheux !
J'ai fait un script ou j'ai la variable USER= nom d'un utilisateur non root et PASSWD= mot de passe de root.
Dans le script, je fait un su $USER pour exécuter une commande qui doit être exécuter par USER, et je doit ensuite repasser en root.
A ce moment là, je n'arrive pas à placer la variable PASSWD dans su.
Je pensais qu'un
$PASSWD | su
ferait le taf mais il voit le contenu de PASSWD comme une commande.
Dernière modification par Boombastick (Le 29/09/2015, à 16:24)
Hors ligne
#2 Le 28/09/2015, à 21:09
- soshy
Re : [RESOLU] Utiliser variable avec su
Salut,
tu dis "repasser en root" j'imagine que ça veut dire que tu étais root avant de faire su $USER
root # su user1
user1 $ ta_commande
user1 $ exit
root #
Refaire un su à ce niveau là ça ouvre une profondeur de plus, ça devient limite inception après :-)
Hors ligne
#3 Le 29/09/2015, à 07:38
- Boombastick
Re : [RESOLU] Utiliser variable avec su
Salut,
tu dis "repasser en root" j'imagine que ça veut dire que tu étais root avant de faire su $USERroot # su user1 user1 $ ta_commande user1 $ exit root #
Refaire un su à ce niveau là ça ouvre une profondeur de plus, ça devient limite inception après :-)
La commande en question est google-authenticator en fait, donc pour tester, j'ai fait le script suivant :
#!/bin/bash
echo "1"
su master
echo "2"
yes | google-authenticator
echo "3"
exit
echo "4"
Il m'affiche le echo 1, mais le script s’arrête et je suis en user1. C'est à n'y rien comprendre.
Hors ligne
#4 Le 29/09/2015, à 12:10
- soshy
Re : [RESOLU] Utiliser variable avec su
Effectivement...
#!/bin/bash
echo $(whoami)
su user1 -i << 'EOF'
echo "$(whoami)"
EOF
echo "$(whoami)"
Ceci à l'air de fonctionner. Par contre, ça t'affiche toute la console de user1, commandes exécutées incluses
Hors ligne
#5 Le 29/09/2015, à 14:03
- Boombastick
Re : [RESOLU] Utiliser variable avec su
Effectivement...
#!/bin/bash echo $(whoami) su user1 -i << 'EOF' echo "$(whoami)" EOF echo "$(whoami)"
Ceci à l'air de fonctionner. Par contre, ça t'affiche toute la console de user1, commandes exécutées incluses
Aucuns problèmes, il n'y a que l'admin du serveur qui exécutera ce script.
Hors ligne
#6 Le 29/09/2015, à 14:10
- Boombastick
Re : [RESOLU] Utiliser variable avec su
Effectivement...
#!/bin/bash echo $(whoami) su user1 -i << 'EOF' echo "$(whoami)" EOF echo "$(whoami)"
Ceci à l'air de fonctionner. Par contre, ça t'affiche toute la console de user1, commandes exécutées incluses
Je te donne les retours l'option -i n'existe pas.
root@OwnCloud:/home/master# ./test.sh
root
su : option invalide -- 'i'
Syntaxe : su [options] [IDENTIFIANT]
Options :
-c, --command COMMANDE passer la commande COMMANDE à
l'interpréteur de commande appelé ;
-h, --help afficher ce message d'aide et quitter ;
-, -l, --login utiliser un interpréteur de commandes
initial (« login shell ») ;
-m, -p,
--preserve-environment ne pas réinitialiser les variables
d'environnement et conserver le même
interpréteur de commandes ;
-s, --shell SHELL utiliser SHELL comme interpréteur de
commandes à la place de celui défini
par défaut dans le fichier passwd.
root
root@OwnCloud:/home/master#
J'ai essayé au cas où avec sudo à la place de su
root@OwnCloud:/home/master# ./test.sh
root
sudo: master: command not found
root
root@OwnCloud:/home/master#
Hors ligne
#7 Le 29/09/2015, à 16:12
- soshy
Re : [RESOLU] Utiliser variable avec su
ok, essaye avec ça alors :
#!/bin/bash
echo $(whoami)
su - user1 << 'EOF'
echo "$(whoami)"
EOF
echo "$(whoami)"
remplacer su par sudo n'est pas une bonne idée.
sudo : une commande (sudo) qui permet d'exécuter la commande qui suit avec les droits d'administrateur. (c'est un peu simplifié)
su : une commande qui permet de changer d'utilisateur.
Faire :
sudo user
n'a strictement aucun sens.
Tu peux aussi par exemple si tu as les droits d'administrateurs et un userX :
su - userX
=> va te connecter en userX et te demande le mot de passe de userX
sudo su - userX
=> va te demander le mot de passe sudo et pas le mot de passe de userX.
Dernière modification par soshy (Le 29/09/2015, à 16:22)
Hors ligne
#8 Le 29/09/2015, à 16:19
- Boombastick
Re : [RESOLU] Utiliser variable avec su
ok, essaye avec ça alors :
su - user1 << 'EOF'
I'TS FOUND !!! WELL PLAYED BROW !!
Non sérieux merci beaucoup ça fait une semaine que je bloque sur cette commande
Dernière modification par Boombastick (Le 29/09/2015, à 16:29)
Hors ligne