GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser la commande Su sous Linux

Dans ce didacticiel, nous apprenons ce qu'est la commande su (changer d'utilisateur) sous Unix/Linux et la différence entre les commandes su et su. Linux est un noyau de système d'exploitation multi-utilisateurs, ce qui signifie que plusieurs utilisateurs peuvent se connecter simultanément à un système Linux.

Vous pouvez basculer entre différents utilisateurs sur la ligne de commande elle-même avec la commande su. La commande su signifie « utilisateur de substitution » ou peut basculer entre les utilisateurs. Cette commande remplace les informations d'identification de l'utilisateur par celles d'un utilisateur ou d'un root spécifié (par défaut).

Que fait la commande su

La commande su, comme indiqué ci-dessus, changera les informations d'identification de l'utilisateur en celles d'un autre utilisateur. Vérifions un exemple

[raghu@redhat-server ~]$ su jack
Password:
[jack@redhat-server raghu]$ id
uid=501(jack) gid=501(jack) groups=501(jack),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh

La commande id affiche les informations sur l'utilisateur actuel. Dans la sortie ci-dessus, vous pouvez voir l'utilisateur modifié. Lorsqu'aucun argument n'est donné à la commande su, elle passe par défaut à l'utilisateur root. Les pages de manuel d'Ubuntu ont expliqué plus d'informations.

[jack@redhat-server raghu]$ su
Password:
[root@redhat-server raghu]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Simulation de connexion avec su -

Avec la commande su --login ou su -l ou simplement 'su -', vous pouvez changer d'utilisateur comme s'il s'agissait d'une connexion depuis un terminal.

[raghu@redhat-server ~]$ su - jack
Password:
[jack@redhat-server ~]$ id
uid=501(jack) gid=501(jack) groups=501(jack),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Différence entre su et su-

La différence entre 'su' et 'su -' est que certaines variables d'environnement telles que la variable PATH ne changent pas de valeurs avec seulement su (c'est-à-dire si l'option -l ou - est omise). Certaines commandes peuvent ne pas s'exécuter si PATH n'est pas correctement défini. Par exemple, considérez le scénario suivant :

[jack@redhat-server ~]$ su root
Password:
[root@redhat-server jack]# fdisk -l
bash: fdisk: command not found
[root@redhat-server jack]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/jack/bin

Vous pouvez voir que les répertoires sbin ne sont pas inclus dans le PATH de l'utilisateur root. Il n'exécute donc pas la commande fdisk. Maintenant, nous essayons de nous connecter avec su - commande :

[jack@redhat-server ~]$ su -
Password:
[root@redhat-server ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1044 8281507+ 8e Linux LVM
[root@redhat-server ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

Une autre différence entre ces deux commandes réside dans les scripts de connexion. Voyons d'abord quelques scripts de connexion :

Lorsqu'un utilisateur se connecte à un système, les 4 fichiers suivants sont exécutés si les informations d'identification de l'utilisateur sont légitimes :

/etc/profile
/etc/bashrc
~/.bashrc
~/.bash_profile

Lorsque vous vous connectez avec la commande 'su -', tous ces scripts sont exécutés. Mais avec su, seuls les scripts bashrc sont exécutés, c'est-à-dire que les scripts /etc/bashrc et ~./bashrc sont exécutés.

Dans Ubuntu, vous pouvez recevoir un échec d'authentification lorsque vous exécutez la commande su. Vous recevez cette erreur car le compte racine Ubuntu est désactivé par défaut.

user@host:~$ su
Password:
su: Authentication failure

Au lieu de su, utilisez sudo -i ou sudo suivi de votre commande.

Conclusion

Dans ce tutoriel, nous avons appris la différence entre les commandes "su" et "su -" sous Linux. Plus d'informations sont disponibles dans man su. J'espère que vous avez apprécié la lecture et s'il vous plaît laissez vos suggestions ci-dessous.

Lire aussi :

  • 38 commandes Linux de base à apprendre avec des exemples
  • Comment ajouter un utilisateur à Sudoers sur Debian

Linux
  1. Comment utiliser la commande Linux grep

  2. Comment utiliser la commande history sous Linux

  3. Comment utiliser la commande d'écran Linux

  4. Comment utiliser la commande ldconfig sous Linux

  5. Comment utiliser la commande ipset sous Linux

Comment utiliser la commande sysctl sous Linux

Comment utiliser la commande d'arrêt de Linux

Comment utiliser grep sous Linux

Comment utiliser la commande Mkdir sous Linux

Comment utiliser la commande jobs sous Linux

Comment utiliser la commande screen sous Linux