Sudo

Le
Le Cerdocyon
Bonjour,

Sur un de nos serveurs un compte utilisateur (james) spécifique peut lancer des commandes liées à une application.

Il n'y à que lui qui peut lancer cette commande puisqu'il à tout de correctement positionné dans ses variables d'environnements.

Pour une tache précise d'exploitation, j'ai besoin de créer un compte utilisateur qui pourra se connecter en ssh sur ce serveur
et qui pourrait exécuter une commande lié à l'utilsateur james.

Je ne veut pas que les exploitants se connecte avec le compte james.

Est-ce qu'il est possible avec sudo de lancer une commande que seul james peut éxécuter par l'utilisateur exploitant ?

Je n'arrive pas à m'en sortir avec sudo.



--
Cerdocyon
key ID 0x773B483BAC099326

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/20100901081148.GA16301@the-rabbit-hole.co.uk
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Le Cerdocyon
Le #22528741
Je ne sais pas si j'ai été assez explicite ;-)

J'aimerai simplement éxécuter une commande d'un autre utilisateur en héritant de son environnment avec sudo.

Si vous avez une piste
--
Cerdocyon
key ID 0x773B483BAC099326

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Florian BLANC
Le #22528731
Bonjour,
Je ne suis pas spécialiste ... mais si tu ajoute l'utilisateur toto et que tu le met dans le group james ... ?
Il faut que toto soit un sudoer aussi.
Pour l'histoire du group ... à tester mais je ne sais pas vraiment.

Cordialement.


Le 1 sept. 2010 à 10:11, Le Cerdocyon a écrit :

Bonjour,

Sur un de nos serveurs un compte utilisateur (james) spécifique peut lancer des commandes liées à une application.

Il n'y à que lui qui peut lancer cette commande puisqu'il à tout de correctement positionné dans ses variables d'environnements.

Pour une tache précise d'exploitation, j'ai besoin de créer un compte utilisateur qui pourra se connecter en ssh sur ce serveur
et qui pourrait exécuter une commande lié à l'utilsateur james.

Je ne veut pas que les exploitants se connecte avec le compte james.

Est-ce qu'il est possible avec sudo de lancer une commande que seul james peut éxécuter par l'utilisateur exploitant ?

Je n'arrive pas à m'en sortir avec sudo.



--
Cerdocyon
key ID 0x773B483BAC099326

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Thierry Leurent
Le #22528721
Dans le fichier /etc/sudoers, tu peux mettre ce genre de ligne.
%printeradministrator COBOLSERVERS=(root) /etc/init.d/cups
Elle dit que les membres du groupe printeradministrator peuvent lancer la
commande /etc/init.d/cups sur les serveurs du grouppe COBOLSERVERS et pour
ce faire, ils acquières les droits de root.

Chez moi cela fonctionne très bien, c'est de cette manières que certains
de mes operateurs peuvent démarrer les applications serveurs.

Le Cerdocyon a écrit :
Je ne sais pas si j'ai été assez explicite ;-)

J'aimerai simplement éxécuter une commande d'un autre utilisateur en
héritant de son environnment avec sudo.

Si vous avez une piste
--
Cerdocyon
key ID 0x773B483BAC099326

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive:
http://lists.debian.org/






--
Thierry Leurent
Phone : +32 476/20.23.98
E-mail :
Website (en developpement) : http://www.asgardian.be


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Florian BLANC
Le #22529041
Le 1 sept. 2010 à 10:39, Thierry Leurent a écrit :

Dans le fichier /etc/sudoers, tu peux mettre ce genre de ligne.
%printeradministrator COBOLSERVERS=(root) /etc/init.d/cups
Elle dit que les membres du groupe printeradministrator peuvent lancer la
commande /etc/init.d/cups sur les serveurs du grouppe COBOLSERVERS et pour
ce faire, ils acquières les droits de root.




Il n'a pas dit qu'il voulait attribuer à ce nouvel utilisateur les droits de root mais, les droits de james.

Chez moi cela fonctionne très bien, c'est de cette manières que certains
de mes operateurs peuvent démarrer les applications serveurs.

Le Cerdocyon a écrit :
Je ne sais pas si j'ai été assez explicite ;-)

J'aimerai simplement éxécuter une commande d'un autre utilisateur en
héritant de son environnment avec sudo.

Si vous avez une piste
--
Cerdocyon
key ID 0x773B483BAC099326

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive:
http://lists.debian.org/






--
Thierry Leurent
Phone : +32 476/20.23.98
E-mail :
Website (en developpement) : http://www.asgardian.be


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/ .asgardian.be




--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Le Cerdocyon
Le #22529021
Le 01/09/10 à 10:32, Florian BLANC a ecrit:
Bonjour,
Je ne suis pas spécialiste ... mais si tu ajoute l'utilisateur toto et que tu le met dans le group james ... ?
Il faut que toto soit un sudoer aussi.
Pour l'histoire du group ... à tester mais je ne sais pas vraiment.

Cordialement.




J'y avais pensé mais je ne peux pas faire ça non plus, je ne dois passer que par sudo.

Il y'à deux variables qu'on peut changer dans sudo, mais je ne trouve aucuns exemple
de configuration. Par défaut elle positionne le compte root dans le fichier /etc/sudoers

Defaults always_set_home
Defaults env_reset

Je ne vois pas comment je peux définir james à la place de root.

Ca m'irait bien ça si j'arrive à changer root qui est par défaut.
--
Cerdocyon
key ID 0x773B483BAC099326

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Jean-Sébastien Kroll-Rabotin
Le #22529031
--Sig_/nuzWzdAryzpDR+9QLKXX/oH
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Le Wed, 1 Sep 2010 10:11:48 +0200,
Le Cerdocyon
Je n'arrive pas à m'en sortir avec sudo.



"man sudoers" est pourtant très complet… Bon j'imagine que tu as déjà
regardé donc ton problème n'est peut-être pas si simple. De ce que j'ai
compris, une ligne comme celle-ci devrait faire l'affaire :

sshaccount machinename=(james)PASSWD:/full/path/to/command1, /full/path/t o/command2

Ensuite, l'utilisateur connecté en tant que sshaccount exécute  :

$ sudo -u james command1

et entre son mot de passe (à moins d'avoir remplacé PASSWD par
NOPASSWD) et ça roule.

Amuse-toi bien avec sudo…

--
(o< -!
// Happy debian user !
V_/_ http://www.debian.org/

--Sig_/nuzWzdAryzpDR+9QLKXX/oH
Content-Type: application/pgp-signature; name=signature.asc
Content-Disposition: attachment; filename=signature.asc

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAkx+EgoACgkQ3qwCc2aFrOYeMgCguWooc6i/SkuF4yy1QZ0ehurg
PUgAoJuGX6ELUbpTJJ0fGnzymJLKnL2M
=xjn2
-----END PGP SIGNATURE-----

--Sig_/nuzWzdAryzpDR+9QLKXX/oH--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Le Cerdocyon
Le #22529141
Le Cerdocyon
Je n'arrive pas à m'en sortir avec sudo.



sshaccount machinename=(james)PASSWD:/full/path/to/command1, /full/path/to/command2

Ensuite, l'utilisateur connecté en tant que sshaccount exécute :

$ sudo -u james command1

et entre son mot de passe (à moins d'avoir remplacé PASSWD par
NOPASSWD) et ça roule.




Merci de ta réponse, ça fonctionne à l'identique de ce que j'avais déjà fait malheureusement.

La commande s'éxécute bien, mais je n'ai pas l'environnement de james. (la commande ne trouve pas les billes de james
en l'ocurrence une librairie).

Je ne vois pas ou je peux positionner l'env utilisateur avec sudo et virer root par défaut du /etc/sudoers

Grrrrrr...
--
Cerdocyon
key ID 0x773B483BAC099326

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Jean-Sébastien Kroll-Rabotin
Le #22529131
--Sig_/H0CPEJGj1rmEUIGiEF_1YQV
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Le Wed, 1 Sep 2010 11:01:40 +0200,
Le Cerdocyon
La commande s'éxécute bien, mais je n'ai pas l'environnement de
james. (la commande ne trouve pas les billes de james en l'ocurrence
une librairie).



J'avais raté ce morceau de la question, mais en relisant le man de
sudoers, je vois ça :

Tag_Spec ::= ('NOPASSWD:' | 'PASSWD:' | 'NOEXEC:' | 'EXEC:' |
'SETENV:' | 'NOSETENV:' )

suivi un peu plus loin de ça :

SETENV and NOSETENV

These tags override the value of the setenv option on a
per-command basis. Note that if SETENV has been set for a
command, any environment variables set on the command line way
are not subject to the restrictions imposed by env_check,
env_delete, or env_keep. As such, only trusted users should be
allowed to set variables in this manner. If the command matched
is ALL, the SETENV tag is implied for that command; this default
may be overridden by use of the UNSETENV tag.

Ça ne serait pas une piste à explorer ? Je n'ai pas testà © de mon côté,
mais as-tu déjà essayé ça ?

--
(o< -!
// Happy debian user !
V_/_ http://www.debian.org/

--Sig_/H0CPEJGj1rmEUIGiEF_1YQV
Content-Type: application/pgp-signature; name=signature.asc
Content-Disposition: attachment; filename=signature.asc

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAkx+F/YACgkQ3qwCc2aFrObU5ACfRFQH8KeqITnCXKB+8S6j/lzs
SDsAoID7EpqtGHEaMYSMcJzjF2EdLwQw
=M9To
-----END PGP SIGNATURE-----

--Sig_/H0CPEJGj1rmEUIGiEF_1YQV--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Jean-Sébastien Kroll-Rabotin
Le #22529201
--Sig_/C/3vWFBb/t»Lk4wN9+Enx
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Le Wed, 1 Sep 2010 11:08:06 +0200,
Jean-Sébastien Kroll-Rabotin
Ça ne serait pas une piste à explorer ?



J'insiste dans cette voie avec ceci :

env_file The env_file options specifies the fully qualified
path to a file containing variables to be set in the environment
of the program being run. Entries in this file should either be
of the form VARIABLE=value or export VARIABLE=value. The value
may optionally be surrounded by single or double quotes.
Variables in this file are subject to other sudo environment
settings such as env_keep and env_check.

Avec :
james env_file=/path/to/env/file

Non ?


--
(o< -!
// Happy debian user !
V_/_ http://www.debian.org/

--Sig_/C/3vWFBb/t»Lk4wN9+Enx
Content-Type: application/pgp-signature; name=signature.asc
Content-Disposition: attachment; filename=signature.asc

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAkx+G3QACgkQ3qwCc2aFrOaP1ACgxibyeWgd75rmJm2yKIIKjWz+
qroAoMANHYNM7qUOSzd/FOKjL/E3TfSl
=0Vzb
-----END PGP SIGNATURE-----

--Sig_/C/3vWFBb/t»Lk4wN9+Enx--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Patrice Pillot
Le #22529531
Salut,

Le 01/09/2010 10:11, Le Cerdocyon a écrit :
Sur un de nos serveurs un compte utilisateur (james) spécifique peut
lancer des commandes liées à une application.

Il n'y à que lui qui peut lancer cette commande puisqu'il à tout de
correctement positionné dans ses variables d'environnements.

Pour une tache précise d'exploitation, j'ai besoin de créer un compte
utilisateur qui pourra se connecter en ssh sur ce serveur et qui pourrait
exécuter une commande lié à l'utilsateur james.



Côté client (donc sur chaque client :-/), créer une clef ssh avec une
passphrase vide et un nom spécial (pas id_rsa, plutôt genre james_cmd).

Côté serveur installer la partie publique de cette clef dans
~james/.ssh/authorized_keys en rajoutant en début de ligne une option
"command" :
command="/usr/local/bin/super-commande.sh" ssh-rsa.....

Sans doute rajouter d'autres options genre no-pty, no-port-forwarding, etc...

Puis à nouveau côté client :
ssh -i ~/.ssh/james_cmd /usr/local/bin/super-commande.sh

Ça devrait faire exactement ce que tu veux. En revanche c'est pas très
facile à mettre en œuvre si il y a beaucoup de monde. On peut bien sûr
simplifier en recopiant la paire clef publique/privée générée pour le
premier compte dans les .ssh des autres utilisateurs, on peut encore
simplifier l'appel en encapsulant l'appel via ssh dans un alias, ou dans les
.ssh/config, etc. mais au total il faut intervenir sur le compte de chaque
utilisateur...


Je ne veut pas que les exploitants se connecte avec le compte james.



Ils se connecteront avec ce compte, mais sans avoir besoin d'en connaître le
mot de passe et sans pouvoir faire autre chose que
"/usr/local/bin/super-commande.sh" (essaie, c'est marrant...).

Si il y a plus d'une commande à lancer, alors tu peux faire
command="/usr/local/bin/james-restricted-ssh" et dans ce script parser
$SSH_ORIGINAL_COMMAND pour gicler les trucs dangereux avec un script genre :

msg="Command not allowed with this key"

case "$SSH_ORIGINAL_COMMAND" in
*&*)
echo $msg
;;
*(*)
echo $msg
;;
*{*)
echo $msg
;;
*;*)
echo $msg
;;
*<*)
echo $msg
;;
*`*)
echo $msg
;;
*|*)
echo $msg
;;
james-compute*)
$SSH_ORIGINAL_COMMAND
;;
james-display*)
$SSH_ORIGINAL_COMMAND
;;
*)
echo $msg
;;
esac

etc, etc...

HTH

phep

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Publicité
Poster une réponse
Anonyme