Re: problème de syntaxe avec un script shell

2018-01-03 Par sujet Sébastien NOBILI
Bonjour,

Le vendredi 29 décembre 2017 à 14:44, Daniel Caillibaud a écrit :
> Ça répond pas vraiment à la question, mais je trouve que mettre un pass
> sudo dans un script est une très mauvaise idée (ça revient à laisser
> traîner un accès root à un user +/- lambda, et à donner l'accès au compte
> de ce user à tous ceux qui peuvent lire ce script).

Tout d’accord avec ça.

> Il vaut mieux lister les commandes que ce user peut lancer dans
> un /etc/sudoers.d/userBidule (le mieux étant de lui préparer qq scripts,
> qu'il ne peut pas modifier, pour être sûr que ça ne fera que ce qu'il y a
> dans ces scripts, car lui donner les droits complets sur apt ou un autre
> binaire d'admin peut être inutilement risqué).
> 
> Par ex dans /home/bin/upgrade.sh (exécutable par le user mais pas
> modifiable) du
> 
> apt-get update
> apt-get upgrade -y
> 
> et dans /etc/sudoers.d/userBidule
> 
> Cmnd_Alias C_ADM=/home/bin/upgrade.sh,/home/bin/autreScript.sh
> userBidule ALL = (root) NOPASSWD:C_ADM

On peut aussi mettre des commandes avec arguments dans le fichier sudoers, ça
évite l’étape script (qui peut malgré tout être utile là puisqu’elle permettra
d’enchaîner les commandes) :

Cmnd_Alias C_ADM=/usr/bin/apt-get update,/usr/bin/apt-get upgrade -y
userBidule ALL = (root) NOPASSWD:C_ADM

Sébastien



Re: problème de syntaxe avec un script shell

2017-12-29 Par sujet Jean-Michel OLTRA

Bonjour,


Le vendredi 29 décembre 2017, Daniel Caillibaud a écrit...


> JMO> aptitude install cron-apt ?

> C'est assez dangereux, un service qui ne redémarre pas tout seul n'est pas
> si rare… (ou l'upgrade qui reste planté en cours de route à cause de
> dépendances qu'il n'arrive pas à résoudre).

Cron-apt ne fait pas l'upgrade tout seul. Du moins pas chez moi ni sur mes
serveurs. C'est juste une question de configuration. C'est une application
que j'utilise depuis des années et c'est très efficace.

Pour info, Icinga2 a également une fonction de surveillance des mises à jour.

-- 
jm



Re: problème de syntaxe avec un script shell

2017-12-29 Par sujet Francois Lafont
Bonjour,

On 12/29/2017 09:00 AM, Andre Majorel wrote:

>> pwd='le-bon-mot-de-passe'
>> printf '%sn' "$pwd" | sudo --stdin --prompt='' apt-get update --fix-missing
>> printf '%sn' "$pwd" | sudo --stdin --prompt='' apt-get upgrade -y
> 
> L'absence de backslash devant le "n" dans le premier argument de
> printf ne doit pas aider.

Le PO, dans son extrême désinvolture « copier-collesque », s'est fait
couillonner par son lien :


https://www.generation-nt.com/reponses/automatiser-sudo-avec-echo-read-entraide-4267483.html

où les « \n » sont devenus des « n ». Il n'y a donc pas de régression
comme c'était fortement suggéré, juste un simple problème d'interface
« chaise/clavier ».

À+

-- 
François Lafont



Re: problème de syntaxe avec un script shell

2017-12-29 Par sujet Daniel Caillibaud
Le 28/12/17 à 13:19, Bernard Schoenacker  a
écrit :
BS> bonjour,
BS> 
BS> il y a un peut plus d'une année je recherchais
BS> un moyen de faciliter la mise à jour d'un ordi
BS> sous linux et j'avais eu la bonne réponse ...
BS> 
BS> j'ai repris le même script et plus rien ne fonctionne :
BS> 
BS> pwd='le-bon-mot-de-passe'
BS> printf '%sn' "$pwd" | sudo --stdin --prompt='' apt-get update
BS> --fix-missing printf '%sn' "$pwd" | sudo --stdin --prompt='' apt-get
BS> upgrade -y
BS> 
BS> qui pourrais le déverminer ?

Ça répond pas vraiment à la question, mais je trouve que mettre un pass
sudo dans un script est une très mauvaise idée (ça revient à laisser
traîner un accès root à un user +/- lambda, et à donner l'accès au compte
de ce user à tous ceux qui peuvent lire ce script).

Il vaut mieux lister les commandes que ce user peut lancer dans
un /etc/sudoers.d/userBidule (le mieux étant de lui préparer qq scripts,
qu'il ne peut pas modifier, pour être sûr que ça ne fera que ce qu'il y a
dans ces scripts, car lui donner les droits complets sur apt ou un autre
binaire d'admin peut être inutilement risqué).

Par ex dans /home/bin/upgrade.sh (exécutable par le user mais pas
modifiable) du

apt-get update
apt-get upgrade -y

et dans /etc/sudoers.d/userBidule

Cmnd_Alias C_ADM=/home/bin/upgrade.sh,/home/bin/autreScript.sh
userBidule ALL = (root) NOPASSWD:C_ADM

userBidule pourra alors faire directement du `sudo /home/bin/upgrade.sh`
sans avoir de mot de passe à saisir.

-- 
Daniel

Le philosophe cherche des solutions aux problèmes et
ne trouve que des problèmes sans solutions. 
Sim



Re: problème de syntaxe avec un script shell

2017-12-29 Par sujet Daniel Caillibaud
Le 28/12/17 à 14:06, Jean-Michel OLTRA  a
écrit :

JMO> Bonjour,
JMO> 
JMO> 
JMO> Le jeudi 28 décembre 2017, Bernard Schoenacker a écrit...
JMO> 
JMO> 
JMO> > il y a un peut plus d'une année je recherchais
JMO> > un moyen de faciliter la mise à jour d'un ordi
JMO> > sous linux et j'avais eu la bonne réponse ...  
JMO> 
JMO> aptitude install cron-apt ?

C'est assez dangereux, un service qui ne redémarre pas tout seul n'est pas
si rare… (ou l'upgrade qui reste planté en cours de route à cause de
dépendances qu'il n'arrive pas à résoudre).

Je préfère apticron qui m'avertit des màj à faire (avec le changelog et
l'urgence) + un script maison que je lance manuellement pour surveiller que
tout s'est bien passé (et qui fait les updates partout où c'est nécessaire).

-- 
Daniel

Il faut savoir écouter le silence des urnes.
André Lajoinie (1988)



Re: problème de syntaxe avec un script shell

2017-12-29 Par sujet Andre Majorel
On 2017-12-28 13:19 +0100, Bernard Schoenacker wrote:

> il y a un peut plus d'une année je recherchais
> un moyen de faciliter la mise à jour d'un ordi
> sous linux et j'avais eu la bonne réponse ...
> 
> j'ai repris le même script et plus rien ne fonctionne :
> 
> pwd='le-bon-mot-de-passe'
> printf '%sn' "$pwd" | sudo --stdin --prompt='' apt-get update --fix-missing
> printf '%sn' "$pwd" | sudo --stdin --prompt='' apt-get upgrade -y

L'absence de backslash devant le "n" dans le premier argument de
printf ne doit pas aider.

Incidemment, il y a moyen de parvenir au même résultat sans
mettre le mot de passe de l'utilisateur dans un script.

-- 
André Majorel 
The Debian project must be praised for their efforts in fighting spam by
flooding spammers with email addresses, some of which are even bogus.



Re: problème de syntaxe avec un script shell

2017-12-28 Par sujet Jean-Michel OLTRA

Bonjour,


Le jeudi 28 décembre 2017, Bernard Schoenacker a écrit...


> il y a un peut plus d'une année je recherchais
> un moyen de faciliter la mise à jour d'un ordi
> sous linux et j'avais eu la bonne réponse ...

aptitude install cron-apt ?

-- 
jm



Re: problème de syntaxe avec un script shell

2017-12-28 Par sujet Belaïd
Bonjour,

Ça ne répondra pas à ta question mais,  pourquoi ne pas utilisé le script
apt qui est appelé par cron et qui est justement fait pour faciliter les
mises à jour ? Avec les bonnes variables dans le fichier de configuration
d'apt,  tu peux tous faire et facilement et tu es sur que ça survivra après
les mises à niveau d'une version du systeme à une autre

Le 28 déc. 2017 13:20, "Bernard Schoenacker" 
a écrit :

> bonjour,
>
> il y a un peut plus d'une année je recherchais
> un moyen de faciliter la mise à jour d'un ordi
> sous linux et j'avais eu la bonne réponse ...
>
> j'ai repris le même script et plus rien ne fonctionne :
>
> pwd='le-bon-mot-de-passe'
> printf '%sn' "$pwd" | sudo --stdin --prompt='' apt-get update --fix-missing
> printf '%sn' "$pwd" | sudo --stdin --prompt='' apt-get upgrade -y
>
>
> qui pourrais le déverminer ?
>
> sources du script :
>
> https://www.generation-nt.com/reponses/automatiser-sudo-
> avec-echo-read-entraide-4267483.html
>
> slt
> bernard
>
>