Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/07/2018, à 15:16

Vronski

Un script qui doit demander authentification

Bonjour à tous smile

Soit ce script :

#! /bin/bash

sudo apt update

Exécuté par double-clic sous Nautilus : il devrait exiger que l'user saisisse son mot de passe, non ?
C'est exactement ce que fait le même script sous Debian : demande d'authentification.
L'user est dans le groupe sudo. logiquement, le script devrait lui demander son mot de passe ? Il ne le fait pas.
ID de l'user (profil d'installation) :

root@sportubuntu:~# id install
uid=1000(install) gid=1000(install) groupes=1000(install),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare)

Pire : j'en ai écrit un pour régler un problème relatif à appstream :
(en root, forcément, ça passe).

#!/bin/bash

rm -f /var/cache/app-info/xmls/fwupd.xml
apt install appstream/xenial-backports -y
appstreamcli refresh --force
apt update && apt-upgrade -y
reboot

L'user l'exécute, et sans que l'OS lui demande quoi qu ece soit. Et il reboote.
Comprends pas...
Merci .

Dernière modification par Vronski (Le 27/07/2018, à 15:16)

Hors ligne

#2 Le 27/07/2018, à 15:35

MicP

Re : Un script qui doit demander authentification

Bonjour Vronski

… le script devrait lui demander son mot de passe ? Il ne le fait pas.…

Juste avant de lancer tes scripts, essaye peut-être, pour tes tests,
de lancer la ligne de commande :

sudo --reset-timestamp

ou la ligne de commande équivalente utilisant les options courtes :

sudo -k

Ou alors, tu t'arranges pour ne pas avoir utilisé la commande sudo avec le compte utilisateur concerné
dans les 5 minutes qui précèdent le lancement d'un de tes scripts.

Car une fois que la commande sudo a été lancée et que le bon mot de passe a été entré,
il n'est plus nécessaire d'entrer le mot de passe pour chaque nouveau lancement de la commande sudo pendant les 5 minutes qui suivent
à moins d'avoir remis à 0 le "timestamp" de la commande sudo avec une des lignes de commandes citées dans ce message.
(Je crois me souvenir que c'est 5 minutes par défaut, mais je n'ai pas eu la patience d'attendre pour vérifier…)

Dernière modification par MicP (Le 27/07/2018, à 16:17)

Hors ligne

#3 Le 27/07/2018, à 15:48

Vronski

Re : Un script qui doit demander authentification

Bonjour, Micp smile

Voici la réponse de l'OS :

install@sportubuntu:~/Documents$ sudo --reset-timestamp
sudo: Entrée par défaut inconnue « rootpwd »
install@sportubuntu:~/Documents$ sudo -k
sudo: Entrée par défaut inconnue « rootpwd »

Et

root@sportubuntu:~# cat /etc/sudoers
#
# 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,rootpwd
Defaults	mail_badpass
Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

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

# Members of the admin group may gain root privileges
%admin 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

Je ne vois même pas l'user install, là-dedans.

Dernière modification par Vronski (Le 27/07/2018, à 15:50)

Hors ligne

#4 Le 27/07/2018, à 15:58

MicP

Re : Un script qui doit demander authentification

Il y a une erreur dans ton fichier /etc/sudoers

il te faudrait remplacer la ligne :

Defaults	env_reset,rootpwd

(le "d" final est en trop)
par :

Defaults	env_reset,rootpw

=======
Voir le retour de la commande suivante :

man --pager='less -p "rootpw "' sudoers

Dernière modification par MicP (Le 27/07/2018, à 16:15)

Hors ligne

#5 Le 27/07/2018, à 16:05

Watael

Re : Un script qui doit demander authentification

Si c'est ce que je pense, il y a une erreur dans ton fichiers /etc/sudoers

de l'importance d'éditer /etc/sudoers avec visudo !!!
parce que cette commande vérifie la syntaxe du fichier avant d'enregistrer.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#6 Le 27/07/2018, à 16:13

MicP

Re : Un script qui doit demander authentification

Effectivement, si la commande visudo avait été utilisée pour éditer ce fichier
cette erreur aurait été signalée au moment de l'enregistrement du fichier.

Hors ligne

#7 Le 27/07/2018, à 16:48

Vronski

Re : Un script qui doit demander authentification

Effectivement : il y avait une erreur dans /etc/sudoers. wink
J'ai modifié la ligne incriminée : Defaults    env_reset,rootpw  sans le d !

Mais je n'ai pas complètement résolu mon problème.
L'user exécute un script depuis le terminal :

#!/bin/bash
sudo apt update
echo update terminé

Et ça donne ça :

install@sportubuntu:~/Documents$ ./test
[sudo] Mot de passe de root : 
Atteint:1 http://fr.archive.ubuntu.com/ubuntu xenial InRelease
Réception de:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [107 kB]             
Atteint:3 http://fr.archive.ubuntu.com/ubuntu xenial-updates InRelease                          
Atteint:4 http://fr.archive.ubuntu.com/ubuntu xenial-backports InRelease                      
107 ko réceptionnés en 0s (380 ko/s)                         
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Tous les paquets sont à jour.
update terminé

Comme je le veux, oui, il saisit bien le mot de passe root.
Mais.. le script n'a pas l'air de s'exécuter si je l'appelle depuis Nautilus. L'autre script, par contre, (celui sur appstream) sans même demander aucun mot de passe, il semble l'exécuter (sans terminal) puis reboote. C'est à ce reboot que je vois qu'il l'exécute.

Comment exécuter un script, sous un compte user, à travers nautilus, mais en demandant quand-même le psw root ? S'il y a des commandes d'administration, il faut bien s'authentifier...

Il n'ouvre d'ailleurs même pas le terminal. Sous Debian, oui.
Je me plante quelque part...

Dernière modification par Vronski (Le 27/07/2018, à 17:03)

Hors ligne

#8 Le 27/07/2018, à 17:25

erresse

Re : Un script qui doit demander authentification

Et pourquoi diable as-tu besoin du mote de passe "root" ???
Ton mot de passe d'utilisateur administrateur ne te suffit pas ?
Chez moi, dans /etc/sudoers, la ligne que tu as modifiée contient :

Defaults	env_reset,pwfeedback

et pas du tout "rootpw".
Est-ce que tu as modifié ce fichier pour une quelconque raison ?


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#9 Le 27/07/2018, à 18:22

Vronski

Re : Un script qui doit demander authentification

Bonjour.
Oui.
1- Je fais mes TP d'administration sous le compte root. Donc, j'ai dû attribuer un psw à root. Déjà, ça. Et aussi pour déverrouiller le compte root.

2- Je veux qu'un user, qui n'est pas un super-utilisateur, soit obligé de saisir le mot de passe root avant de faire certains choses.
Exemple : le super-user peut appeler GParted avec son seul mot de passe... L'user, auquel je veux donner tout de même certains privilèges, doit ête à l'abri de ça.

Il ne doit saisir le psw root QUE pour :
- les mises à jour
- installer / désinstaller (même à travers la logithèque)

Exemple : S'il appelle par hasard un logiciel relevant d'un privilège plus élevé que le sien, je veux qu'il soit obligé de saisir le psw root.
J'ignore si je me fais bien comprendre hmm

Dernière modification par Vronski (Le 27/07/2018, à 18:23)

Hors ligne