Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 05-11-2017 23:50:21

Walker29
Membre
Lieu : Bretagne (Finistère)
Distrib. : Debian 9.2 (Stretch)
Noyau : Linux 4.13.0-0.bpo.1-amd64
(G)UI : Xfce 4.12
Inscription : 23-04-2016

[RESOLU] - Problèmes avec root pour mise-à-jour du système

Bonsoir à toutes et à tous,

Je voudrais écrire un script shell me permettant de lancer périodiquement les mises-à-jour de ma Debian via "cron". Donc j'ai écris ce minuscule script :

#!/bin/bash
echo "Mise-à-jour du système !"
sudo apt update && apt upgrade
sleep 10
apt autoremove && apt autoclean
echo "Fin des mises-à-jour du système"



Mon problème est que quand je l'exécute il me retourne que je n'ai pas les droits nécessaires, voir ci-dessous :

~/.MesScripts$ ./.maj.sh
Mise-à-jour du système !
[sudo] Mot de passe de walker : 
Ign:1 http://ftp.fr.debian.org/debian stretch InRelease                                  
Atteint:2 http://download.virtualbox.org/virtualbox/debian stretch InRelease
Atteint:3 http://ftp.fr.debian.org/debian stretch Release                    
Atteint:4 https://cdn-aws.deb.debian.org/debian-security stretch/updates InRelease
Réception de:5 https://cdn-aws.deb.debian.org/debian stretch-updates InRelease [91,0 kB]
Réception de:6 https://cdn-aws.deb.debian.org/debian stretch-backports InRelease [91,8 kB]
183 ko réceptionnés en 6s (26,9 ko/s)                                                                                                    
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances      
Lecture des informations d'
état... Fait
6 packages can be upgraded. Run 'apt list --upgradable' to see them.
E: Impossible d'ouvrir le fichier verrou /var/lib/dpkg/lock - open (13: Permission non accordée)
E: Impossible de verrouiller le répertoire d'
administration (/var/lib/dpkg/). Avez-vous les privilèges du superutilisateur ?
E: Impossible d'ouvrir le fichier verrou /var/lib/dpkg/lock - open (13: Permission non accordée)
E: Impossible de verrouiller le répertoire d'
administration (/var/lib/dpkg/). Avez-vous les privilèges du superutilisateur ?
Fin des mises-à-jour du système
 


J'ai pourtant autorisé les privilèges "root" avec la commande :

adduser walker sudo

. J'ai cherché mais je ne trouve pas de réponse claires sur les pages traitants de ce sujet, tous parlent d'accès aux serveurs distants. Avez-vous une idée ? Merci par avance... smile

Dernière modification par Walker29 (09-11-2017 15:47:36)


- La logique vous conduira d'un point A à un point B, l'imagination et l'audace vous conduiront où vous le désirez ! (A. Einstein)
- Quelle époque terrible que celle ou des idiots dirigent des aveugles ! (W. Shakespeare)
- Si vous ne faites pas aujourd'hui ce que vous avez dans la tête, demain vous l'aurez dans le c... (Coluche) big_smile

Hors ligne

#2 06-11-2017 03:27:56

martinux_qc
Administrateur
Lieu : Montréal (Québec)
Distrib. : Sid
Noyau : Linux 4.13.0-1-amd64
(G)UI : XFCE 4.12
Inscription : 12-10-2008

Re : [RESOLU] - Problèmes avec root pour mise-à-jour du système

Salut

Avant tout, as-tu bien configuré sudo ? Voir à ce sujet le wiki : Configuration de sudo - visudo

"L'éducation vise à former des citoyens pas trop tatas et non pas à envoyer le plus de tatas possible à l'université."
Pierre Foglia (Journaliste à la retraite à La Presse)
Note : au Québec, le mot tata a un sens péjoratif qui sert à désigner une personne un peu idiote ou insignifiante. D'où les expressions familières : Espèce de grand, de gros tata! Être, avoir l'air tata.

En ligne

#3 06-11-2017 04:09:34

Walker29
Membre
Lieu : Bretagne (Finistère)
Distrib. : Debian 9.2 (Stretch)
Noyau : Linux 4.13.0-0.bpo.1-amd64
(G)UI : Xfce 4.12
Inscription : 23-04-2016

Re : [RESOLU] - Problèmes avec root pour mise-à-jour du système

Bonjour martinux_qc,

Tout dabord merci pour ta réponse, donc je suis allez voir le tuto et j'ai effectué les changements nécessaires comme indiquer dans la section "Droits d'exécution à un seul user" et voici à quoi ressemble mon fichier maintenant :

# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        timestamp_timeout=0
Defaults:walker tty_tickets
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
walker ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
 



Du coup j'ai fait le test comme indiqué dans le tuto, en saisissant la commande :

sudo fdisk -l



Et cela fonctionne, j'ai bien :
$

sudo fdisk -l


[sudo] Mot de passe de walker : 
Disque /dev/sda : 232,9 GiB, 250059350016 octets, 488397168 secteurs
Unités : secteur de 1 × 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Type d'étiquette de disque : dos
Identifiant de disque : 0xb2207f93

Périphérique Amorçage     Début       Fin  Secteurs Taille Id Type
/dev/sda1    *             2048    206847    204800   100M  7 HPFS/NTFS/exFAT
/dev/sda2                206848 167774207 167567360  79,9G  7 HPFS/NTFS/exFAT
/dev/sda3             167776254 488396799 320620546 152,9G  5 Étendue
/dev/sda5             167776256 226367487  58591232    28G 83 Linux
/dev/sda6             226369536 233926655   7557120   3,6G 82 partition d'échange Linux / Solaris
/dev/sda7             233928704 488396799 254468096 121,3G 83 Linux
 



Malheureusement, je n'ai toujours pas la possibilité de faire un :

sudo apt-get upgrade


Le retour de cette commande est le même que dans mon message précédent.

Edit à toto :

Mis les commandes user séparées de leurs retours pour que ce soit plus lisible.


- La logique vous conduira d'un point A à un point B, l'imagination et l'audace vous conduiront où vous le désirez ! (A. Einstein)
- Quelle époque terrible que celle ou des idiots dirigent des aveugles ! (W. Shakespeare)
- Si vous ne faites pas aujourd'hui ce que vous avez dans la tête, demain vous l'aurez dans le c... (Coluche) big_smile

Hors ligne

#4 06-11-2017 07:41:48

chalu
Modératrice
Lieu : Anjou
Distrib. : Debian Stretch
Noyau : Linux 4.9.0-3-amd64
(G)UI : Mate 1.16
Inscription : 11-03-2016

Re : [RESOLU] - Problèmes avec root pour mise-à-jour du système

Bonjour,
Essaie ton script avec

sudo apt update && sudo apt upgrade


sudo doit être répété pour chaque commande

Hors ligne

#5 06-11-2017 11:14:10

raleur
Membre
Inscription : 03-10-2014

Re : [RESOLU] - Problèmes avec root pour mise-à-jour du système

1) utiliser sudo dans une tâche cron, par nature non interactive, est une aberration. Si la tâche doit s'exécuter avec les privilèges root, il faut la créer avec root.

2) Quand on utilise sudo, il est important de bien comprendre comment fonctionnent le shell et ses opérateurs de redirection et de condition.
Pour le shell, la commande passée à sudo et elle seule, pas les opérateurs, est vue comme un argument du programme sudo. Sudo lui-même prend comme argument une commande et ses paramètres, pas une expression du shell. Pour exécuter une expression du shell avec sudo, il faut spécifier un shell comme commande et l'expression comme paramètre de celle-ci.

Par conséquent :

sudo commande > fichier


est interprété comme

(sudo commande) > fichier


et non

sudo (commande > fichier)


c'est donc le shell de l'utilisateur courant qui écrit dans fichier, et non root.

sudo commande1 && commande2


est interprété comme

(sudo commande1) && commande2


et non

sudo (commande1 && commande2)


Note : Dans les exemples ci-dessus les parenthèses servent à visualiser la priorité d'exécution. Les expressions résultantes ne sont pas forcément valides.

Hors ligne

#6 06-11-2017 12:04:29

smolski
administrateur quasi...modo
Lieu : AIN
Distrib. : 8 (jessie) 64 bits + backports
Noyau : 3.16.0-4-amd64 - 3.16.39-1
(G)UI : gnome 1:3.14+3
Inscription : 21-10-2008

Re : [RESOLU] - Problèmes avec root pour mise-à-jour du système

Très fort.
Mis dans le tuto sudo là :
https://debian-facile.org/doc:systeme:s … troduction

À vérifier mes transes... scriptions ! wink

"Théo et Adama te rappellent pourquoi Zyed et Bouna couraient…"
"L'utopie ne signifie pas l'irréalisable, mais l'irréalisée." - T Monod (source :  La zone de Siné)
"Je peux rire de tout mais pas avec n'importe qui." - P Desproges
"saque eud dun" (patois chtimi : fonce dedans)

En ligne

#7 09-11-2017 15:46:25

Walker29
Membre
Lieu : Bretagne (Finistère)
Distrib. : Debian 9.2 (Stretch)
Noyau : Linux 4.13.0-0.bpo.1-amd64
(G)UI : Xfce 4.12
Inscription : 23-04-2016

Re : [RESOLU] - Problèmes avec root pour mise-à-jour du système

Merci à tous pour vos réponses et désolé pour mon retard, mais je n'ai pas eu accès à Internet depuis 2 jours...

Chalu a écrit :

Essaie ton script avec

sudo apt update && sudo apt upgrade


sudo doit être répété pour chaque commande


J'ai essayé avec et cela fonctionne, mais en étant obligé de resaisir le mot de passe à chaque commandes...

Raleur a écrit :

1) utiliser sudo dans une tâche cron, par nature non interactive, est une aberration. Si la tâche doit s'exécuter avec les privilèges root, il faut la créer avec root.



Au final, j'ai opté pour cette solution pour le moment. C'est plus simple et plus sûre. Merci à vous wink


- La logique vous conduira d'un point A à un point B, l'imagination et l'audace vous conduiront où vous le désirez ! (A. Einstein)
- Quelle époque terrible que celle ou des idiots dirigent des aveugles ! (W. Shakespeare)
- Si vous ne faites pas aujourd'hui ce que vous avez dans la tête, demain vous l'aurez dans le c... (Coluche) big_smile

Hors ligne

Pied de page des forums