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 20/06/2022, à 14:43

Vivi936

Sudo su

Je pense avoir fait une connerie en essayant de changer mon terminal par default
je ne sais plus exactement ce que j'ai fait mais maintenant, quand je fais un sudo su, ça marche plus.

vira@vira-Vostro-3525:~$ sudo su 
[sudo] Mot de passe de vira : 
su: échec d'exécution de zsh: Aucun fichier ou dossier de ce type

Hors ligne

#2 Le 20/06/2022, à 15:37

bruno

Re : Sudo su

Bonjour,

D'abord on n'utilise pas sudo su, c'est redondant, inutile et idiot. Si tu veux passer dans un vrai shell root, il suffit de faire :

sudo -i

Ensuite tu as une erreur sur zsh. Quel shell utilises-tu ?

echo $SHELL

Hors ligne

#3 Le 20/06/2022, à 17:53

Qid

Re : Sudo su

bruno a écrit :

on n'utilise pas sudo su, c'est redondant, inutile et idiot. Si tu veux passer dans un vrai shell root, il suffit de faire :

sudo -i

On peut lancer ce débat ? Pourquoi tu es aussi radical ?

En tous cas sur la question initiale à mon avis zsh n'est pas bien installé ou mal désinstallé au choix...


"GNU/Linux c'est que du bon mais M$ Windows ce n'est pas si mal"
Référent technique Ubuntu d'un Groupe d'Utilisateur du Libre
plus d'info sur mon profil

Hors ligne

#4 Le 20/06/2022, à 18:03

jplemoine

Re : Sudo su

sudo su

ou

sudo su -

n'est pas redondant mais "old school".
il est préconisé d'utiliser

sudo -i

car l'ancienne syntaxe pouvait dans certain cas, entraîner des problèmes de droit...

Pour le problème initial, il est probable que le /etc/passwd ait été modifié  manuellement.
Le problème  : pour modifier le fichier, il faut être root et pour être root, il faut modifier le fichier.... sad
Donc, il faut utiliser une session live pour modifier le fichier et remettre une valeur adéquate.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#5 Le 20/06/2022, à 18:55

MicP

Re : Sudo su

Bonjour

jplemoine a écrit :

sudo su

ou

sudo su -

n'est pas redondant mais "old school".
il est préconisé d'utiliser

sudo -i

car l'ancienne syntaxe pouvait dans certain cas, entraîner des problèmes de droit...

Non, ça n'a jamais été old school et c'est de fait redondant de demander deux fois de suite dans la même ligne de commandes l'accès aux privilèges du compte root
c'est simplement que beaucoup n'avaient pas lu et/ou compris ce qui était expliqué dans les pages des manuels de la commande sudo et de la commande su
à moins que par "old scholl " tu pensais à "old mistake"

L'option login des commandes su et sudo existe depuis plus de 20 ans (il me semble même que c'est depuis plus longtemps que ça)
C'est d'ailleurs très bien expliqué dans la 6ème édition (1997) de Linux in a nutshell de chez O'Reilly (pdf 12.4 MB)
Fil de discussion de juin 2012 -> askubuntu.com : What are login and non-login shells?

=======
Sans utiliser l'option login de la commande sudo ou/et de la commande su
et même si l'on avait modifié la valeur de la variable d'environnement PATH de son compte utilisateur afin de pouvoir accéder aux programmes de maintenance,
ou lancé des commandes de maintenance en donnant leur chemin absolu,
on ne pourrait pas être sûr que le shell ouvert soit un login shell "propre" :
Il n'y a pas d'imbrication de shell(s), pas de sous-shell, etc. => pas de risque d'aliases imprévus ou/et d'autres variables d'environnements qui auraient étés modifiées
et donc, pas de risque d'aliases imprévus ou/et d'autres variables d'environnements qui auraient étés modifiées entre chaque sous-shell
Le login-shell est exactement celui qu'on obtiendrait en ouvrant un shell juste après le démarrage du système.

Par exemple, le shell que vous obtenez dans une fenêtre de terminal de l'interface graphique de votre environnement
n'est PAS un login-shell comme vous l'obtiendrez en vous identifiant dans une console en mode texte.

On peut vérifier que c'est un login shell "propre"
en faisant s'afficher la valeur de la variable 0 qui doit alors commencer par le caractère  - (tiret ou "moins")

=======
login shell pas sûr : le premier caractère de la valeur qui a été assignée à la variable 0 N'est PAS le caractère -

michel@ubu2204:~$ echo $0
bash
michel@ubu2204:~$ 
michel@ubu2204:~$ sudo su
[sudo] Mot de passe de michel : 
root@ubu2204:/home/michel# echo $0
bash
root@ubu2204:/home/michel# 

=======
login shell "propre" : le premier caractère de la valeur qui a été assignée à la variable 0 est le caractère -

michel@ubu2204:~$ sudo -i
[sudo] Mot de passe de michel : 
root@ubu2204:~# echo $0
-bash
root@ubu2204:~# 

=======
Voir aussi :

unix.stackexchange.com : difference between bash, -bash and /bin/bash in ps output [duplicate]

unix.stackexchange.com : Difference between Login Shell and Non-Login Shell?

stackoverflow.com : What are the differences between a login shell and interactive shell?

datacademia.com : Bash - Login Shell

=======
NOTE :

Pour spécifier l'option login au lancement de la commande sudo
on peut spécifier l'option sous sa forme longue : --login
ou spécifier cette même option sous sa forme courte : -i

Pour spécifier l'option login au lancement de la commande su
on peut spécifier l'option sous sa forme longue : --login
ou spécifier cette même option sous sa forme courte : -l
ou spécifier cette même option sous sa forme encore plus courte : -

Voir les pages des manuels des commandes su et sudo

Dernière modification par MicP (Le 21/06/2022, à 13:49)

Hors ligne

#6 Le 23/06/2022, à 20:22

bruno

Re : Sudo su

Merci @MicP pour ta réponse argumentée wink

Hors ligne

#7 Le 23/06/2022, à 21:30

MicP

Re : Sudo su

C'est avec plaisir, j'en apprends beaucoup de tous sur ces forums linux
et en fait, j'en sais très peu, alors j'étale ma confiture, c'est tout.

La culture, c'est comme la confiture : moins on en a, plus on l'étale lol

Hors ligne