Linux é o Kernel do sistema, e isso sempre deixa as pessoas confusas, mas hoje nós vamos falar de Linux e do comando su, será que você já usou o comando? E será que tem diferença entre os comandos su e su – ? Confira este artigo e tire suas dúvidas.
Vários usuários podem fazer login em um sistema Linux simultaneamente. Você pode alternar entre diferentes usuários usando linha de comando, graças ao comando su. Este comando altera as credenciais do usuário para as de um usuário que você pode escolher, ou até mesmo o ROOT especificado (por padrão). Hoje aprenda um pouco mais sobre o comando su e as diferenças entre os comandos su e su -.
A ideia central deste artigo é apresentar o comando su e desmistificar o seu uso, juntamente com o estimulo ao uso do Terminal. Claro, sabemos que quanto menos usar o Terminal melhor para o usuário, mas é sempre bom saber o que fazer em alguns momentos.
É óbvio que no Linux, como em qualquer sistema operacional, pode acontecer do ambiente travar, ou alguma situação em que o uso do Terminal pode evitar aquela velha reinstalação que leva tempo e paciência, então fica este artigo como parte desta ideia.
O comando su
O comando su serve para alterar as credenciais dos usuários, conforme dissemos acima, você pode escolher o usuários que desejar, desde que ele exista em seu sistema Linux. Veja um exemplo do comando su:
Password:
[sempreupdate@redhat-server raghu]$ id
uid=501(sempreupdate) gid=501(sempreupdate) groups=501(sempreupdate),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh
No exemplo a seguir, vamos usar o comando su sem nenhum parâmetro, com isso vamos ter o usuário ROOT por padrão.
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
Comando su –
Com o su –login, su -l apenas o comando su – você pode alternar o usuário como se fosse um login, mas usando o terminal.
Password:
[sempreupdate@redhat-server ~]$ id
uid=501(sempreupdate) gid=501(sempreupdate) groups=501(sempreupdate),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh
Diferença entre su e su –
A diferença entre su e su – é que algumas variáveis ??de ambiente, como variável PATH, não alteram valores com apenas o comando su (ou seja, se a opção -l ou – for omitida). Alguns comandos podem não ser executados se a variável PATH não estiver configurada corretamente.
Por exemplo, considere o seguinte cenário:
Password:
[root@redhat-server emanuel]# fdisk -l
bash: fdisk: command not found
[root@redhat-server emanuel]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/emanuel/bin
Você pode ver que os diretórios sbin não estão incluídos no PATH do usuário ROOT. Portanto, não executa o comando fdisk. Agora, tentamos fazer login com o comando su -, veja:
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
/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
Quando um usuário faz logon em um sistema, os seguintes 4 arquivos são executados se as credenciais do usuário forem legítimas:
/etc/bashrc
~/.bashrc
~/.bash_profile
Quando você faz login usando o comando su -, todos esses scripts são executados. Mas com o comando su apenas, os scripts bashrc são executados, ou seja, /etc/bashrc and ~./bashrc scripts são executados.
Espero que você tenha aprendido um pouco mais, tanto de como usar o comando su, o que é e para que serve. Como também onde usar, são exemplos comuns.