Bonjour,
j'aimerais savoir si il est possible de lancer une script ou programme en passer par un autre utilisateur.
exemple: on est l'utilisateur A et on fais "sh script.sh B" et sa fais comme si c'était B qui lancer le script
merci d'avance
(j'aimerais évité de passer par visudo)
# su -c
Posté par Bernez . Évalué à 2.
su -c script.sh B
[^] # Re: su -c
Posté par NeoX . Évalué à 2. Dernière modification le 06 décembre 2014 à 14:08.
je crois qu'il faut etre root ou avoir le mot de passe de l'utilisateur B pour faire çà, mais c'est l'idée en effet.
ce qui ne marchera pas pour ton script PHP qui lance un script SH avec l'utilisateur www-data qui execute le PHP.
[^] # Re: su -c
Posté par Obsidian . Évalué à 2.
Sinon, « sudo -u B script.sh », ça marche aussi, avec son propre mot de passe, à condition d'avoir les bons privilèges.
[^] # Re: su -c
Posté par Adrien Dorsaz (site web personnel, Mastodon) . Évalué à 1.
Non, mais il faut connaître le mot de passe de B (su c'est pour switch user) et la commande c'est plutôt :
su - B -c "script et arguments"
Il y a aussi polkit qui peut t'aider avec
pkexec --user B script
, qui te demandera aussi le mot de passe de B.Pour plus de détails
man
et pour sudo, il faut l'avoir configuré avant de pouvoir le faire, mais dans ce cas se sera ton mot de passe qui sera demandé.[^] # Re: su -c
Posté par eyefighter . Évalué à 1.
et si mon programme a des droit suid et appartiens a B
Normalement si je le lance avec A, il se lance avec B ?
[^] # Re: su -c
Posté par wismerhill . Évalué à 2.
Si c'est un programme (binaire) oui, si c'est un script (un fichier texte commençant par #!) non.
[^] # Re: su -c
Posté par fearan . Évalué à 2.
Hé non :) Un petit soucis de sécurité; imagine que le script utilise une commande, disons test, [ ou [[ (y a de fortes chances )
et qu'un petit malin a changé la variable PATH pour aller avoir un petit programme qui s'appelle [ avant celui qu'on trouve dans /usr/bin/, enfin je dis [ ça peut être toute commande appelée par le script.
Bref c'est pas une bonne idée, et pour palier à ce petit soucis les bits de set[ug]id sur un script ne servent à rien.
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: su -c
Posté par Obsidian . Évalué à 4.
« su » veut dire initialement « Substitute User », ce qui est effectivement une définition plus correcte (« se substituer à… »).
« Switch User » a plutôt l'air d'être une définition « rétro-inventée » à partir d'une commande déjà en place depuis longtemps, et qu'a retrouvé un peu partout au point de trouver maintenant les deux définitions dans les différents manuels pour mettre tout le monde d'accord. Mais « switch » n'est pas réellement exact puisqu'il n'y a ni permutation d'utilisateur, ni changement de session.
# si c'est lié à ton post precedent
Posté par NeoX . Évalué à 2.
ca vaut peut-etre le cout pour toi de regarder du coté du module suexec apache.
ca doit de permettre d'executer le site en tant qu'un utilisateur autre que www-data (donc dans ton cas admin_serveur_de_jeux)
[^] # Re: si c'est lié à ton post precedent
Posté par Tonton Th (Mastodon) . Évalué à 4.
C'est si cher que ça ?
[^] # Re: si c'est lié à ton post precedent
Posté par NeoX . Évalué à 3. Dernière modification le 07 décembre 2014 à 21:54.
s'il doit prendre 2 semaines pour comprendre comment ca marche, oui cela a un coût
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.