Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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

soshy a écrit :

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 :-)

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

soshy a écrit :

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

soshy a écrit :

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

soshy a écrit :

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 roll

Dernière modification par Boombastick (Le 29/09/2015, à 16:29)

Hors ligne