Su parle anglais alors que su - reste français! et autres différences

ton lien est bien plus clair , pour moi , que ce que j’ai obtenu par la commande man su ( ci-dessous ) :

-, -l, --login
Start the shell as a login shell with an environment similar to a real
login:
* clears all the environment variables except TERM and variables
specified by --whitelist-environment
* initializes the environment variables HOME, SHELL, USER, LOG‐
NAME, and PATH
* changes to the target user’s home directory
* sets argv[0] of the shell to ‹ - › in order to make the shell a
login shell

Le lien :

Sans paramètre, su essaye de devenir le
super-utilisateur. Le paramètre optionel - peut être utilisé afin de
fournir un environnement similaire à celui qui serait obtenu par login
direct.

J’aime bien le essaye ?? Il n’y arrive donc pas toujours ?

C’est de l’humour apporté dans la traduction :sweat_smile:

j’ai fini par comprendre , au moins en partie , ce qu’est ce path et à quoi il sert .

  • la commande su ayant un $PATH = celui de l’utilisateur précédent ( mm dans mon cas ) ne conduit pas à un vrai root car les commandes passées dans cette console vont chercher , quoi d’ailleurs , des lanceurs , des raccourcis vers ? , dans les mêmes répertoires que ceux utilisés par mm
mm@Xfce:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

mm@Xfce:~$ su 
Mot de passe : 
root@Xfce:/home/mm# echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
  • par contre si j’utilise su - la valeur $PATH est différente et correspond à un vrai root ( je suppose du moins )
mm@Xfce:~$ su -
Mot de passe : 
root@Xfce:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

j’espère ne pas dire trop de bêtises .

Même si dans une semaine j’aurai probablement oublié tout ça , merci pour l’info .

note : j’ai peut-être au moins une partie de la réponse à la question à quoi sert de définir $PATH? :
/usr/bin/cat <==> cat ce qui simplifie l’écriture d’une commande car bash , pour un utilisateur donné , sait où la chercher

Bonsoir,

su permet de s’authentifier avec un utilisateur qui aurait accès à un SHELL. (qui aurait un /bin/bash ou /bin/sh ou /bin/dash etc… dans la configuration de l’utilisateur.

Le fichier de configuration des utilisateurs de la machine : /etc/passwd
Les SHell valident sont ici : /etc/shells
Les mot de passe sont ici : /etc/shadows

Dans une console :

  1. Quand tu tapes su (tout court) tu souhaites t’identifié en l’utilisateur « super-utilisateur » : root.

  2. Quand tu tapes su un_autre_user tu souhaites t’identifié en un_autre_user.

  3. Quand tu tapes su - (avec un tiret) tu demandes à la commande de t’envoyer dans le répertoire racine de l’utilisateur root

  4. Quand tu tapes su - un_autre_user tu demandes à la commande de t’envoyer dans le répertoire racine de un_autre_user.

Le tiret sert a çà : il aurait pû/dû écrire la commande avec un « tilde » su ~ un_autre_user cela aurait été mieux :rofl: Tilde ~ / Wiki / Debian-facile

:wink:

Et quand, tu tapes exit, qu’il y ai écrit déconnexion ou exit et ben t’es déconnecté.e.

En fait c’est ton environnement mm@Xfce qui est (bien) configuré avec ton langage, le FR_fr.
Ton Xfce en mode root ne l’est pas.

Sinon, donc, çà doit être une question de locale… Il faut demander aux autres :sweat_smile:

Bonnes fêtes de fin d’année ! On ne boit pas trop, on ne fait les cons ou les salopes, bon, « la bonne conduite, l’art de bien rouler », on fait attention aux autres et on met nos clignotant pour dire où l’on va… et surtout on regarde derrière et autour de soi !!!

Romain.

Sinon j’ajoute :

Si dans ton Xfce qui souhaites créer dans le clic droit de la souris « Executer en tant qu’administrateur » comme dans windows :ok_hand: Début de piste :wink:

Et, ben, il faut ouvrir un autre sujet !

:innocent:

Sans savoir, vu que ton Xfce de ton utilisateur est bien configuré en FR, çà doit fonctionné rapidement.

Pour mettre ton Xfce de root en français tu peut essayer :

gnome-language-selector

Il doit y avoir des valeurs à mettre dans des fichiers de /root/.Xfce comme celles de /home/mm/.Xfce mais je ne sais pas lesquelles.

J’ai trouvé ces sujets de discussion :

Problème Français dans XFCE
Environnement en anglais, comment le mettre en français?
[xfce]en francais c’est possible?(resolu)

Bonne soirée :slight_smile:

bonsoir ,

mm@Xfce:/etc$ wc -l passwd
38 passwd

alors que je suis seul sur ma machine j’aurais 38 utilisateurs au total ? C’est une surprise . De voir , par exemple , pulse ou backup être considérés comme des utilisateurs va m’obliger à revoir la définition de ce terme . Sans parler de l’utilisateur nobody !! De l’humour une fois encore ? par référence à ce post

Pour mettre ton Xfce de root en français tu peut essayer :

ça par contre ça n’est pas indipensable et si j’en ai fait la remarque au début c’est parce que j’ai été surpris de voir apparaître de l’anglais pour deux commandes que je ne pensais pas être si différentes . Sans plus .

Bonjour,

C’est normal - ce sont des utilisateurs pour les programmes.
Il ne peuvent pas s’authentifier.

Seul les utilisateurs ayant un SHell executable peuvent s’identifier sur la machine - Les autres sont là pour pouvoir executer des taches « à chacun de leur programme » - c’est une sécurité.

par exemple l’utilisateur root et le 1er utilisateur (l’identifiant 1000) ont le SHell /bin/bash :

root:x:0:0:root:/root:/bin/bash
[...]
orj:x:1000:1000:O Romain Jaillet-ramey:/home/orj:/bin/bash
[...]

Le autres « utilisateurs » ont un SHell qui ne permet pas de se connecter à la machine :

[...]
games:x:5:60:games:/usr/games:/usr/sbin/nologin
[...]
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin

A titre d’information :
le 1er IDentifiant est le « 0 » → super-utilisateur
le dernier IDentifiant est le « 65534 » → nobody

« nobody » correspond à « personne » (toute personne qui aurait pû accéder à la machine sans n’avoir de droit particulier → par exemple → lors d’un accès via un serveur « FTP anonyme » que tu aurais installé sur ta machine).

Hors Sujet (attribution des droits)

Quand tu attribues des droits à un fichier ou a un dossier tu as « 3 bits » par type.

Les 3 premiers bits → pour l’utilisateur
Les 3 suivants → pour le groupe
Les 3 dernier → pour le reste des utilisateurs de la machine.

Tu as « r » pour read (lire)
Tu as « w » pour write (écrire)
Tu as « x » pour executer (executer )

Tu t’appercois par exemple que le dossier /root est accessible que pour lui-même.

ls -l /
drwx------  10 root root  4096 Dec 26 18:19 root

Tu t’appercois que le dossier /home/orj est accessible en lecture pour tout le monde.

ls -l /home/
drwxr-xr-x 3 orj  orj 4096 Dec 11 16:49 orj

Tu peut changer les droits avec la commande chmod
Tu peut changer l’utilisateur avec la commande chown
Tu peut changer le groupe avec la commande chgrp

Par exemple tu peut ajouter avec + et enlever des droits avec -

chmod g+w /home/orj/

Ici, j’ai ajouté au groupe les droits d’écrire.

Si je veut les enlever je fais un :

chmod g-w /home/orj/

En passant le fichiers des « groupes » est celui-ci (tu peut ajouter des « utilisateurs » à chacun des groupes) :

cat /etc/group
[...]
orj:x:1000:
[...]

Je peut dire que les utilisateurs « orj » et « romain » ont la main sur le groupe « my_group » :

cat /etc/group
[...]
orj:x:1000:
romain:x:1001:
my_group:x:5000:orj,romain
[...]

Qui permet de configurer un dossier par exemple de cette façon :

ls -l /home/
drwxrwxr-x 3 orj  my_group 4096 Dec 11 16:49 orj

Pour que « romain » puisse modifier les fichiers de /home/orj/ puisse que le groupe « my_group » a les droits d’écriture.

En passant et pour finir, il y a la commande umask qui permet de configurer les droits d’écriture sur un répertoire pour la création d’un fichier.

Si l’utilisateur « romain » créait un fichier dans /home/orj/ le fichiers sera par default non modifiable pour l’utilisateur « orj ». Il faut configurer le « umask » pour que le groupe donne les permission d’écrire.

romain@machine ~: # touch /home/orj/file_romain.txt
romain@machine ~: # ls -l /home/orj/file_romain.txt
-rw-r--r-- romain romain   63 févr. 20  file_romain.txt
root@machine ~: # umask 002 /home/orj/
romain@machine ~: # touch /home/orj/file2_romain.txt
-rw-rw-r-- romain romain   63 févr. 20  file2_romain.txt

Par contre le groupe « romain » n’a pas d’utilisateur associé…
Il faut changer la configuration des utilisateurs/groupes, dire que les utilisateurs « orj » et « romain » sont dans le groupe « 5000 » (my_group).

Note de Moi-même : umask est déclaré avec les bits « inversé » de chmod :

Par exemple chmod 750 /repertoire :

  1. qui dit executer-lire-ecrire « 7 » pour l’utilisateur
  2. qui dit executer-lire « 5 » pour le groupe
  3. qui dit « aucun droit » « 0 » pour les autres users de la machine.

En mode umask 027 /repertoire ce serait :

  1. qui dit executer-lire-ecrire « 0 » pour l’utilisateur (7-7 = 0)
  2. qui dit executer-lire « 2 » pour le groupe (7-5 = 2)
  3. qui dit « aucun droit » « 7 » pour les autres users de la machine (7-0 = 7)
Permissions Notation en octet
r (lecture) 4
w (écriture) 2
x (exécution) 1

Qu’est-ce que umask et comment utiliser la commande umask

Bonne journée.

Romain

ok ; merci pour ces précisions . Je suis pourvu en nobodies : 4 au total

Oui dans ce contexte ~ vaut /root, le répertoire personnel du super-utilisateur.

Pas du tout. Le tiret de su est un raccourci pour -l ou --login et n’a rien à voir avec le tilde qui représente le répertoire personnel de l’utilisateur courant du shell.

Non, exit n’est pas une déconnexion mais une sortie parce qu’il n’y avait pas de « connexion ».

Le comportement se produit aussi dans une console texte tty, donc je ne vois pas ce que Xfce vient faire ici.

Non, la locale est identique dans les deux cas.

Voici l’explication :
« exit » et « déconnexion » ne sont pas affichés par su mais pas le shell qu’il exécute, bash.
« exit » n’est pas la traduction de « déconnexion » qui est « logout ».
bash affiche « déconnexion » ou « logout » lorsqu’il a été lancé en tant que shell de session, comme lorsqu’il est lancé par su -. Sinon, bash affiche « exit ».
Comparer ce qui est affiché quand on fait ctrl+d dans les cas suivants :

bash
LANG=C bash
bash -l
LANG=C bash -l
1 J'aime

:wink:

Bonne fin de journée à vous :slight_smile:

Et su sans tiret permet de faire quoi ; de ne pas se loguer ? çà doit être un raccourcis de -l --login aussi :rofl:

su avec un tiret me fais changer de répertoire… et me place dans le répertoire « racine » de l’utilisateur.

Bon…

Merci pour ces explications.

Ctrl + d → je déconnecte.

Bonne journée à vous.

Romain

cette écriture aurait ma préférence car elle a le mérite de distinguer minuscule et majuscule et éviterait l’emploi de
Maj lorsqu’on veut une majuscule , mais je ne l’ai vue nulle part . Et même par souci d’économie pourquoi pas Ctrl + d ?

Bonne journée.

Exactement. Cela ne lance pas un shell de connexion.

Ce n’est qu’un effet parmi d’autres de l’option -l. Voir la page de manuel pour les autres effets.

En fait Ctrl+d n’est pas un signal de déconnexion mais de la fin du flux d’entrée standard (stdin) comme lorsque la fin d’un fichier d’entrée est atteinte, et fonctionne avec n’importe quel programme lancé par le shell et qui attend des données sur son entrée standard ( (cat, grep, sed…), pas seulement le shell lui-même. Généralement cela entraîne la terminaison du programme puisque celui-ci n’a plus de données à lire, mais ce n’est pas systématique.

1 J'aime

Ok.

oui.

Oui, je suis revennue - C’était juste la fin de mon flux de communication standard.

Non, mais Ok. Je suis (suivre), j’essaie, je comprend…

Bonne journée, merci @PascalHambourg :blush:

je viens de réaliser que ceci est le 1er exemple concret qui illustre parfaitement la remarque que @MicP m’avait faite sur l’utilisation de ce tilde comme raccourci dans une commande liée à l’utilisation du protocle scp . Je ne l’avais pas comprise et oubliée : jusqu’à aujourd’hui où le sou est enfin tombé . Comme je n’ouvre quasimment que des consoles utilisateur mm ou avec sudo plutôt que root si nécessaire , je ne m’en rendais tout simplement pas compte , le tilde ayant toujours la même signification .

Oui c’est ça zao :slightly_smiling_face:

mm@Xfce:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

mm@Xfce:~$ su 
Mot de passe : 
root@Xfce:/home/mm# echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
  • par contre si j’utilise su - la valeur $PATH est différente et correspond à un vrai root ( je suppose du moins )
mm@Xfce:~$ su -
Mot de passe : 
root@Xfce:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

j’espère ne pas dire trop de bêtises .

C’est bon, c’est ça zao, tu ne dis pas de bêtises. :wink:

1 J'aime

Sur Debian 9 un simple

su

mettait /sbin dans cette variable, mais plus sous Debian 10 où il faut faire :

su -

ou

su -l

1 J'aime