Debian-facile

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

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

#1 02-08-2019 19:11:49

bendia
Chadministrateur
Distrib. : Buster, Stretch (et un peu Jessie)
Noyau : Linux 4.9.0-2-amd64
(G)UI : Gnome + Console et un peu Openbox
Inscription : 20-03-2012
Site Web

Les enquêtes Debian-Facile : on a volé mes commandes root sous Buster

Depuis la publication de Buster , nous avons vu fleurir sur le forum pas mal de questions concernant l'impossibilité de passer certaines commandes nécessitant les droits root bien que connecté sur ce compte.
Ces commandes ont-elles disparu ? Que nenni, il s'agit juste d'une modification de la commande su permettant de passer root et en particulier de la gestion de la variable d'environnement PATH qui indique au système dans quels chemins rechercher les commandes.

Pour expliquer ce qu'est cette variable voici un court extrait du MOOC Maîtriser le Shell Bash publié sur la plateforme FunMooc par l'Université de La Réunion (sous licence CC-BY-NC-SA 4.0)

La variable PATH est une variable importante, elle donne l’accès aux commandes du système. Cette variable sert à retrouver les commandes dans l’arborescence sans qu’il ne soit nécessaire de fournir le chemin d’accès absolu. La variable PATH représente une règle de recherche pour le shell. C’est la liste des répertoires dans lesquels le shell doit rechercher une commande (en suivant l’ordre des répertoires
listés dans la variable).
Supposons que vous ayez deux commandes ls, l’une que vous avez créée et l’autre la commande classique. Celle que vous avez créée se trouve dans le répertoire /usr/local/bin et la commande classique se trouve dans /usr/bin. Pour utiliser la commande classique, vous devez saisir :

/usr/bin/ls


En revanche, si votre variable PATH contient le répertoire /usr/bin/ alors vous pouvez saisir :

ls


Si votre variable PATH contient /usr/local/bin:/usr/bin/ alors en saisissant la commande ls, la version utilisée sera celle que vous avez créée car l’ordre compte, dans la liste des répertoires de la variable PATH. Consulter le contenu d’une variable d’environnement s’effectue par une commande d’affichage echo et une substitution de variable comme le montre l’exemple avec la variable PATH.

echo $PATH


/usr/local/bin:/sbin:/bin:/usr/bin



Jusqu'à Stretch, c'est le paquet source Shadow qui fournissait la commande su. Depuis la publication de Buster, c'est util-linux qui fourni cette commande. su n'est pas absolument identique dans les deux paquets. En effet, avec l'implémentation de shadow, un simple su réinitialisait la variable PATH en y ajoutant le chemin /usr/sbin et /sbin, chemin contenant des commandes qu'on ne passe qu'avec les droits root. Comme ce n'est plus le cas avec l'implémentation issue de util-linux, le shell n'est donc pas capable de trouver ces commandes.

Voyez plutôt :

su


fdisk -l


bash: fdisk : commande introuvable


ls /sbin/fdisk


/sbin/fdisk


Le système ne trouve pas la commande, pourtant, elle est bien présente. Et voici le pourquoi du comment

echo $PATH


/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games


Pas de /sbin dans cette variable, donc, le shell ne sait pas où se trouve cette commande.

Il faut donc a présent pour ouvrir un shell root et voir la variable PATH initialisée avec ces deux répertoires taper

su -l #ou su --login
#ou
su - #oui, avec un tiret



On essaye à nouveau

su -


fdisk -l


Disque /dev/sda : 50 GiB, 53687091200 octets, 104857600 secteurs
Modèle de disque : QEMU HARDDISK  
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
...
 


Pas de problèmes ici, et le pourquoi du comment

echo $PATH


/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


Vous remarquerez l'apparition des répertoires /foo/sbin (et la disparition de /usr/games le compte root n'est pas fait pour jouer, nan mais oh, garnement tongue ).


Et voilà encore une enquête résolu par le célèbre détective Debian-Facile smile


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

Hors ligne

#2 02-08-2019 21:09:03

Philou92
Adhérent(e)
Lieu : Hauts de Seine
Distrib. : Debian stretch 9.11
Noyau : Linux 4.9.0-11-amd64
(G)UI : LightDM et Xfce4 + Gnome 3.22
Inscription : 29-04-2015

Re : Les enquêtes Debian-Facile : on a volé mes commandes root sous Buster

Remarquable !
Les mystères de debian, d'Eugène Su.:-)

Chaque siècle fera son œuvre, aujourd’hui civique, demain humaine. Aujourd’hui la question du droit, demain la question du salaire. Salaire et droit, au fond c’est le même mot. L’homme ne vit pas pour n’être point payé ; Dieu en donnant la vie contracte une dette ; le droit, c’est le salaire inné ; le salaire, c’est le droit acquis.
             Quatrevingt-treize
             Victor Hugo.

Hors ligne

#3 02-08-2019 21:36:01

infothema
Modérateur
Lieu : Bégard (Côtes d'Armor)
Distrib. : 9 (stretch) 64 bits
(G)UI : MATE
Inscription : 28-01-2012
Site Web

Re : Les enquêtes Debian-Facile : on a volé mes commandes root sous Buster

Belle démonstration technique Bendia ! un vrai régal ! smile

Association libriste infothema  située dans les Côtes d'Armor (Bretagne)
Blog : https://www.infothema.fr / Forum : https://www.infothema.fr/forum
Twitter : https://twitter.com/asso_infothema / Compte Mastodon : https://framapiaf.org/@infothema
Diaspora : https://framasphere.org/u/association_infothema

Hors ligne

#4 02-08-2019 21:38:18

vv222
Modérateur
Lieu : Bretagne
Distrib. : GNU/Linux Debian « Sid »
Noyau : Linux ≥ 5.2 (amd64)
(G)UI : Openbox
Inscription : 18-11-2013
Site Web

Re : Les enquêtes Debian-Facile : on a volé mes commandes root sous Buster

Merci bendia, je sens que je vais souvent partager des liens vers ton enquête dans les mois qui viennent wink

Jouer sous Debian ? Facile !

Hors ligne

#5 02-08-2019 22:07:24

bendia
Chadministrateur
Distrib. : Buster, Stretch (et un peu Jessie)
Noyau : Linux 4.9.0-2-amd64
(G)UI : Gnome + Console et un peu Openbox
Inscription : 20-03-2012
Site Web

Re : Les enquêtes Debian-Facile : on a volé mes commandes root sous Buster

infothema a écrit :

Belle démonstration technique Bendia !

C'est juste un compilation des informations données par les utilisateurs du forum, je n'en connaissait pas plus que ça sur le sujet avant de commencer. Un simple synthèse de document quoi smile


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

Hors ligne

#6 03-08-2019 14:40:18

tof70
Membre
Distrib. : Debian 10 - Buster
Noyau : Linux 4.19.0-5-amd64
(G)UI : i3 + Gnome comme base
Inscription : 28-08-2016

Re : Les enquêtes Debian-Facile : on a volé mes commandes root sous Buster

Merci bendia,
je ne m'en étais pas rendu compte (je ne me connecte jamais* en root, sudo me suffit pour administrer la bestiole).

* une fois le système installé et que tout roule ...

Hors ligne

#7 03-08-2019 15:01:01

lagrenouille
CA Debian-Facile
Lieu : Toulouse, con !
Distrib. : stretch et buster amd64
Noyau : d'olive
(G)UI : env i3-clavier bépo
Inscription : 28-03-2012
Site Web

Re : Les enquêtes Debian-Facile : on a volé mes commandes root sous Buster

oh ! belle explication...merci

In girum imus nocte et consumimur igni 

Hors ligne

#8 06-08-2019 19:01:14

barmic
Membre
Inscription : 06-08-2019

Re : Les enquêtes Debian-Facile : on a volé mes commandes root sous Buster

Bonjour,

Merci pour l'article! Si je peux me permettre un tout petit ajout:

Pousser les gens à passer par un login shell améliore la résilience des installations.

Utiliser un login shell ne va pas simplement modifier la variable

PATH

, il va ouvrir un nouveau shell en ignorant les précédentes variables d'environnement, se placer dans le répertoire

HOME

de l'utilisateur (root par défaut) et exécuter les scripts d'init (

/etc/profile

,

$HOME/.profile

,

$HOME/.bash_profile

avant de lancer les différents bashrc qui ne sont pas spécifiques au login shell).

Cela va donc permettre de s'assurer que toutes les commandes lancées le seront avec un environnement qui aura était nettoyé (les locales correctement positionnées, etc).

Hors ligne

#9 06-08-2019 19:07:19

bendia
Chadministrateur
Distrib. : Buster, Stretch (et un peu Jessie)
Noyau : Linux 4.9.0-2-amd64
(G)UI : Gnome + Console et un peu Openbox
Inscription : 20-03-2012
Site Web

Re : Les enquêtes Debian-Facile : on a volé mes commandes root sous Buster

Merci pour les précisions smile On ne l'avait pas mis exprès pour ne pas trop délayer le propos principal (il y a déjà eu débat pour savoir si le blabla sur PATH était nécessaire ou non big_smile ).

Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

Hors ligne

#10 06-08-2019 22:41:22

MicP
Membre
Inscription : 29-02-2016

Re : Les enquêtes Debian-Facile : on a volé mes commandes root sous Buster

barmic a écrit :

…Cela va donc permettre de s'assurer que toutes les commandes lancées le seront avec un environnement qui aura était nettoyé (les locales correctement positionnées, etc). …

Oui, c'est exactement ça qui est le plus important,

et j'ajouterai que si

echo ${0::1}

retourne un simple tiret et pas autre chose,
c'est qu'on est bien dans un login shell "propre"
<=>
qui ne sera ni un sous-shell ( la variable BASH_SUBSHELL sera égale à 0)
ni une imbrication de shells ( la variable SHLVL sera égale à 1 )

Dernière modification par MicP (08-08-2019 00:39:07)

Hors ligne

#11 07-08-2019 23:20:14

barmic
Membre
Inscription : 06-08-2019

Re : Les enquêtes Debian-Facile : on a volé mes commandes root sous Buster

bendia a écrit :

Merci pour les précisions smile On ne l'avait pas mis exprès pour ne pas trop délayer le propos principal (il y a déjà eu débat pour savoir si le blabla sur PATH était nécessaire ou non big_smile ).



Ah euh… Mon point était d'être technique que d'expliquer pourquoi ce changement a était fait:

Cette modification améliore la maintenabilité du système et aligne Debian sur des usages que l'on trouve dans d'autres distributions (comme fedora).



Permet à l'utilisateur lambda de savoir que c'est un choix réfléchit de la part de Debian et pas juste pour l'ennuyer.

Hors ligne

Pied de page des forums