Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[shell script] sudo dans un shell script

26 réponses
Avatar
unbewust
j'ai besoin de lancer dans un shell script donn=E9 une commande par
sudo.

je ne vois pas comment faire, je m'explique, au terminal on fait :
&> sudo mon_script
password:

et on entre le password.

mais dans un script donn=E9 je voudrais r=E9pondre =E0 l'int=E9rieur du scr=
ipt
=E0 la demande de password.

comment faire =E7a ?

bien s=FBr le password serait alors ***en clair*** dans le script, =E7a ne
me g=E8ne pas vu que c'est sur une b=E9canne que j'utilise seul...

Yvon

10 réponses

1 2 3
Avatar
Vincent Lefevre
Dans l'article <C2E0BFA3.AFA3C%,
Eric Levenez écrit:

Ah, j'avais pas vu l'option -S. Comme c'est quand même un trou de sécurité,
sudo doit se protéger en invalidant les essais de mots de passe si l'on a
trop d'erreurs pendant une durée. Enfin je suppose.


Pourquoi un trou de sécurité? Si le but est d'empêcher les essais
automatiques et donc d'interdire l'envoi du mot de passe via stdin,
alors il faudrait aussi interdire les pseudo-ttys. Et là, tout un
tas de programmes risquent de ne plus marcher (à commencer par
"screen", je suppose).

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)

Avatar
Vincent Lefevre
Dans l'article ,
unbewust écrit:

OK merci, le pb est simple je voudrais pouvoir executer un script en
admin sans qu'il me demande à chaque fois le pwd...


Exécuter le script via un wrapper setuid, ça ne t'irait pas?

Note: le wrapper est généralement nécessaire pour des questions de
sécurité. Maintenant, je ne sais pas si les scripts setuid sont secure
sous Mac OS X.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)

Avatar
Eric Levenez
Le 11/08/07 22:48, dans <20070811204225$, « Vincent
Lefevre » <vincent+ a écrit :

Dans l'article <C2E0BFA3.AFA3C%,
Eric Levenez écrit:

Ah, j'avais pas vu l'option -S. Comme c'est quand même un trou de sécurité,
sudo doit se protéger en invalidant les essais de mots de passe si l'on a
trop d'erreurs pendant une durée. Enfin je suppose.


Pourquoi un trou de sécurité? Si le but est d'empêcher les essais
automatiques et donc d'interdire l'envoi du mot de passe via stdin,


Oui. Un mot de passe devrait passer par un canal sécurisé et pas une simple
redirection.

Comme dans l'exemple de l'installeur de Virex, on voit bien que cette
méthode de redirection est dangereuse par fournie (parfois) en clair le mot
de passe.

alors il faudrait aussi interdire les pseudo-ttys. Et là, tout un
tas de programmes risquent de ne plus marcher (à commencer par
"screen", je suppose).


Comme à l'origine il n'y avait pas de pseudo-tty, la lecture directe sur
/dev/tty empêchait les attaques brutales, maintenant effectivement on peut
utiliser les pseudo tty pour faire ce travail.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.


Avatar
Eric Levenez
Le 11/08/07 22:52, dans <20070811204946$, « Vincent
Lefevre » <vincent+ a écrit :

Maintenant, je ne sais pas si les scripts setuid sont secure
sous Mac OS X.


Non on ne peut (heureusement) pas faire un script setuid sur Mac OS X.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.

Avatar
Vincent Lefevre
Dans l'article <C2E3F01D.AFD43%,
Eric Levenez écrit:

Le 11/08/07 22:48, dans <20070811204225$, « Vincent
Lefevre » <vincent+ a écrit :

Pourquoi un trou de sécurité? Si le but est d'empêcher les essais
automatiques et donc d'interdire l'envoi du mot de passe via stdin,


Oui. Un mot de passe devrait passer par un canal sécurisé et pas une simple
redirection.


Un tty n'est pas plus sécurisé qu'un pipe.

Comme dans l'exemple de l'installeur de Virex, on voit bien que
cette méthode de redirection est dangereuse par fournie (parfois) en
clair le mot de passe.


Là, c'est un autre problème: le trou de sécurité n'est pas le pipe,
mais le fait que le mot de passe se trouve en argument.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)


Avatar
Vincent Lefevre
Dans l'article <C2E3F29F.AFD4C%,
Eric Levenez écrit:

Le 11/08/07 22:52, dans <20070811204946$, « Vincent
Lefevre » <vincent+ a écrit :

Maintenant, je ne sais pas si les scripts setuid sont secure
sous Mac OS X.


Non on ne peut (heureusement) pas faire un script setuid sur Mac OS X.


Plutôt malheureusement. Faire des scripts Perl setuid ne pose aucun
problème de sécurité sous Linux.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)


Avatar
Eric Levenez
Le 12/08/07 2:21, dans <20070812001919$, « Vincent
Lefevre » <vincent+ a écrit :

Dans l'article <C2E3F01D.AFD43%,
Eric Levenez écrit:

Le 11/08/07 22:48, dans <20070811204225$, « Vincent
Lefevre » <vincent+ a écrit :

Pourquoi un trou de sécurité? Si le but est d'empêcher les essais
automatiques et donc d'interdire l'envoi du mot de passe via stdin,


Oui. Un mot de passe devrait passer par un canal sécurisé et pas une simple
redirection.


Un tty n'est pas plus sécurisé qu'un pipe.


Normalement si, cela a été inventé pour cela justement.

Comme dans l'exemple de l'installeur de Virex, on voit bien que
cette méthode de redirection est dangereuse par fournie (parfois) en
clair le mot de passe.


Là, c'est un autre problème: le trou de sécurité n'est pas le pipe,
mais le fait que le mot de passe se trouve en argument.


Oui, le problème vient d'une "fonctionnalité" mal utilisée.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.



Avatar
Eric Levenez
Le 12/08/07 2:31, dans <20070812002730$, « Vincent
Lefevre » <vincent+ a écrit :

Dans l'article <C2E3F29F.AFD4C%,
Eric Levenez écrit:

Le 11/08/07 22:52, dans <20070811204946$, « Vincent
Lefevre » <vincent+ a écrit :

Maintenant, je ne sais pas si les scripts setuid sont secure
sous Mac OS X.


Non on ne peut (heureusement) pas faire un script setuid sur Mac OS X.


Plutôt malheureusement. Faire des scripts Perl setuid ne pose aucun
problème de sécurité sous Linux.


Le problème est que souvent le setuid d'un shell est mal utilisé car le
shell est souvent lisible par tous et les "programmeurs" y placent des
données confidentielles. Pour éviter d'avoir 36 programmes setuid sur le
système, le sudo doit être utilisé.

--
Éric Lévénez -- <http://www.levenez.com/>
Unix is not only an OS, it's a way of life.



Avatar
Vincent Lefevre
Dans l'article <C2E49862.AFD98%,
Eric Levenez écrit:

Le 12/08/07 2:21, dans <20070812001919$, « Vincent
Lefevre » <vincent+ a écrit :

Un tty n'est pas plus sécurisé qu'un pipe.


Normalement si, cela a été inventé pour cela justement.


Conceptuellement, il n'y a aucune raison pour que le pipe soit moins
sécurisé. Ou alors c'était une question d'implémentation dans le passé,
qui n'est probablement plus valable aujourd'hui?

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)


Avatar
Vincent Lefevre
Dans l'article <C2E49A6F.AFD9A%,
Eric Levenez écrit:

Le problème est que souvent le setuid d'un shell est mal utilisé car le
shell est souvent lisible par tous et les "programmeurs" y placent des
données confidentielles.


C'est juste un problème avec les mauvais programmeurs. Et puis si
écrire un script sh setuid est assez risqué, un script Perl setuid
(avec l'option -T, obligatoire, je crois) l'est beaucoup moins.

Pour éviter d'avoir 36 programmes setuid sur le système, le sudo
doit être utilisé.


C'est moins pratique, et ça demande un accès root pour permettre
l'utilisation du sudo. Et il y a des différences. Par exemple:

The real and effective uid and gid are set to match those of the
target user [...]

Les uid/gid réels *et* effectifs sont tous deux modifiés. Enfin, ceci
est tout de même paramétrable avec l'option stay_setuid. D'autre part,
peut-on spécifier l'uid et le gid dans le fichier /etc/sudoers?

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)

1 2 3