Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

#1 Le 10/01/2013, à 22:28

Hizoka

lancer une commande root avec droit user

Bonsoir,

Je voulais savoir s'il était possible lorsque l'on est en root (principalement dans un script) d'executer une commande en precisant le nom de l'user afin de ne pas avoir les droits roots dessus.

Je lance donc un script en sudo

sudo script.sh
....
# Je voudrais lancer la commande sous le nom de l'user hizoka
hizoka chromium-browser
....

merci a vous smile

Dernière modification par Hizoka (Le 10/02/2013, à 11:25)

Hors ligne

#2 Le 10/01/2013, à 22:43

nesthib

Re : lancer une commande root avec droit user

sudo -u hizoka …

et pour une appli graphique sous GNOME :

gksudo -u hizoka …

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#3 Le 10/01/2013, à 22:44

xavier4811

Re : lancer une commande root avec droit user

Bonsoir,

avec su ?

# su hizoka -c 'chromium-browser'

Hors ligne

#4 Le 10/01/2013, à 22:47

Hizoka

Re : lancer une commande root avec droit user

parfait !

merci à vous deux smile

Hors ligne

#5 Le 10/02/2013, à 11:25

Hizoka

Re : lancer une commande root avec droit user

je relance ce topic car je rencontre un soucis.

lancer un commande avec

sudo -u hizoka ssh root@XX.XX.XXX.XXX

n'est pas equivalent à

ssh root@XX.XX.XXX.XXX

car il considere que l'un est lancé par root et l'autre par hizoka.

de ce fait le 1er demande le mdp d'acces au serveur alors que le2e demande la passphrase liée a la paire de clé.

une idée de comment detourner ca ?

Ex :

sudo -su
sudo -u hizoka echo "$USER et $SUDO_USER"
=> root et hizoka

USER reste root...

Dernière modification par Hizoka (Le 10/02/2013, à 11:50)

Hors ligne

#6 Le 10/02/2013, à 13:35

xavier4811

Re : lancer une commande root avec droit user

Je me répete mais ...

# whoami
root
# su xavier -c'echo "$USER et $SUDO_USER"'
xavier et xavier

Hors ligne

#7 Le 11/02/2013, à 08:07

Hizoka

Re : lancer une commande root avec droit user

Il est vrai que ca renvoie bien le nom de l'USER mais ca coince de la meme facon avec ssh.

je lance mon script en user hizoka :

# Pour que la pass phrase soit chargée par kwallet
ssh-add </dev/null
# Copie d'un dossier serveur sur mon pc
rsync -e ssh -avz --delete-after ${user}@${new_ip}:/home/save/* /home/hizoka/Save/
...
=> sent 5619 bytes  received 15787660 bytes  957168.42 bytes/sec
=> total size is 14694437174  speedup is 930.42

et maintenant avec root (et su hizoka -c) :

su hizoka -c "rsync -e ssh -avz --delete-after ${user}@${new_ip}:/home/save/* /home/hizoka/Save/"
Could not open a connection to your authentication agent.
Enter passphrase for key '/home/hizoka/.ssh/id_rsa':

c'est assez dommage quand même, mais ça doit être une securité...

Dernière modification par Hizoka (Le 11/02/2013, à 08:08)

Hors ligne

#8 Le 11/02/2013, à 21:56

xavier4811

Re : lancer une commande root avec droit user

Y pas une option -l ou --login pour su ?
J ai rien sous la main pour verifier.

EDIT
-------------------------------------------------
y a bien une option -l ou --login a essayer. avec-l c'est un shell de login, et pas un sous shell -> SHLVL=1 || 2
d'ou la forme su - [root]

# su -l xavier -c'env' > /home/xavier/avecl.txt
# su  xavier -c'env' > /home/xavier/sansl.txt
# diff -yB --suppress-common-lines --suppress-blank-empty /home/xavier/avecl.txt /home/xavier/sansl.txt 
SHELL=/bin/bash						      <
XDG_SESSION_COOKIE=a5b4a22003f9fae0b2dba63d000003ff-136062086 |	SHELL=/bin/bash
							      >	XDG_SESSION_COOKIE=a5b4a22003f9fae0b2dba63d000003ff-136062086
							      >	LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=0
							      >	PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games |	_=/usr/bin/env
PWD=/home/xavier					      |	PWD=/root
SHLVL=1							      <
							      >	SHLVL=2
							      >	LESSOPEN=| /usr/bin/lesspipe %s
XAUTHORITY=/home/xavier/.Xauthority			      |	LESSCLOSE=/usr/bin/lesspipe %s %s
_=/usr/bin/env						      |	XAUTHORITY=/home/xavier/.Xauthority

Dernière modification par xavier4811 (Le 12/02/2013, à 00:30)

Hors ligne

#9 Le 12/02/2013, à 16:14

Hizoka

Re : lancer une commande root avec droit user

toujours le meme probleme.

Il ne considere pas que c'est lancé par l'user hizoka...

tant pis je laisse tomber...

je ferais une verification qui bloque le lancement de la commande en root.

Dernière modification par Hizoka (Le 12/02/2013, à 16:15)

Hors ligne

#10 Le 24/02/2013, à 14:03

Hizoka

Re : lancer une commande root avec droit user

En fait, il semblerait que le soucis vienne de ssh-add :

su -l hizoka -c 'ssh-add </dev/null'
Could not open a connection to your authentication agent.

su hizoka -c 'ssh-add </dev/null'
Could not open a connection to your authentication agent.

sudo -u hizoka ssh-add </dev/null
Could not open a connection to your authentication agent.

ssh-add
Could not open a connection to your authentication agent.

je vais donc chercher dans cette direction !

Dernière modification par Hizoka (Le 24/02/2013, à 14:08)

Hors ligne

Haut de page ↑