Question très bête

Question très bête - Divers - Linux et OS Alternatifs

Marsh Posté le 01-02-2003 à 16:26:39    

J'ai une question vraiment con (pour changer).
Dans ma fenêtre terminal, pour passer root, je tape :

Code :
  1. [user@localhost]$su


Le rentre le pass et voilà.
 
Partout, je vois qu'il faut taper :

Code :
  1. [user@localhost]$su -


 :heink:  
A quoi sert le - ?


Message édité par ecliptux le 01-02-2003 à 16:27:13
Reply

Marsh Posté le 01-02-2003 à 16:26:39   

Reply

Marsh Posté le 01-02-2003 à 16:28:38    

extrait du man su :
 
 -, -l, --login
              Appelle  le shell sous forme de shell de connexion. Voici ce que
              cela signifie : Invalider toutes les  variables  d'environnement
              sauf  `TERM',  `HOME',  et  `SHELL'  (qui sont renseignees comme
              decrit ci-dessus), ainsi que `USER' et `LOGNAME' (qui sont alors
              remplies  meme  pour le Super-Utilisateur).  Remplir `PATH' avec
              une valeur  par  defaut  donnee  lors  de  la  compilation.   Se
              deplacer  dans  le repertoire HOME de l'utilisateur. Ajouter "-"
              au nom du shell, pour que celui-ci lise son ou ses  fichiers  de
              demarrage.

Reply

Marsh Posté le 01-02-2003 à 16:28:51    

c'est une histoire de profile...
 
voir dans etc/profile

Reply

Marsh Posté le 01-02-2003 à 16:32:28    

Code :
  1. Ajouter "-" au nom du shell, pour que celui-ci lise son ou ses  fichiers  de demarrage.


Hummm j'ai peur de pas tout comprendre :??:  
Si on met le "-", il charge le .bashrc du compte root sinon non ?

Reply

Marsh Posté le 01-02-2003 à 16:36:47    

en faisant su -, tu obtiens un shell de login.
 
Extrait du man bash :
      Lorsque  bash est lance comme shell de login interactif, ou comme shell
       non-interactif avec l'option --login, il lit et  execute  tout  d'abord
       les  commandes  se  trouvant  dans le fichier /etc/profile s'il existe.
       Apres  lecture   de   ce   fichier,   il   recherche   ~/.bash_profile,
       ~/.bash_login,  et  ~/.profile, dans cet ordre, et execute les commande
       se trouvant dans le premier fichier existant et accessible en  lecture.
       L'option  --noprofile  peut  etre  utilisee  au demarrage du shell pour
       empecher ce comportement.
 
       Lorsqu'un shell de login se termine, bash lit et execute les  commandes
       du fichier ~/.bash_logout, s'il existe.
 
       Quand un shell interactif demarre sans etre un shell de login, bash lit
       et execute les commandes se trouvant dans ~/.bashrc  s'il  existe.   Ce
       comportement  peut  etre  inhibe a l'aide de l'option --norc.  L'option
       --rcfile fichier forcera bash a executer  les  commandes  dans  fichier
       plutot que dans ~/.bashrc.

Reply

Marsh Posté le 01-02-2003 à 16:39:39    

PPssffiiouuu je ne m'y connais pas suffisament pour comprendre ce que ça signifie.
Ma question c'est : en pratique, qu'y gagne-t-on à mettre le "-" ?

Reply

Marsh Posté le 01-02-2003 à 16:53:21    

En gros quand tu mets le -, bash exécute TOUS ses fichiers de config, et tu te retrouves dans le répertoire /root (enfin celui du nouvel utilisateur)
 
Sinon tu changes pas de répertoire et certains scripts ne sont pas exécutés.

Reply

Marsh Posté le 01-02-2003 à 16:54:59    

OK super j'ai capté.
thx :)

Reply

Marsh Posté le 01-02-2003 à 19:19:02    

Merci Charly pour cette démo :)
Au moins c clair :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed