Linux e Unix
Comando su
O comando su (“substitute user”) permite alterar o proprietário de uma sessão de login sem que o usuário atual tenha de efetuar logout do sistema.O comando su permite mudar o proprietário de uma sessão para qualquer usuário, mas é geralmente usado para mudar de um usuário comum para o usuário root, fornecendo assim acesso a todos os comandos e arquivos do computador.
Usando o comando su evitamos a necessidade de usar o sistema como usuário root o tempo todo, de modo que há uma grande diminuição no risco associado a essa prática, pois ao nos logarmos como usuário comum, que possui diversas restrições de privilégios, o potencial de danos acidentais ou maliciosos diminui bastante.
Em um sistema multiusuário devemos relegar o uso da conta root, e mesmo do comando su, ao mínimo necessário, principalmente se tivermos acesso à Internet.. Desta forma é muito mias difícil que um software malicioso tenha acesso a arquivos e serviços de sistema críticos, os quais geralmente pertencem ao usuário root.
Quando usamos o comando su no modo de console a sessão original do usuário logado não pode ser usada na mesma máquina simultaneamente - pois a sessão de console ocupa a tela toda (a não ser que uma nova sessão de console seja aberta com Alt + Fn). Porém, ao usarmos o su em uma janela de terminal (emulador), apenas essa janela de terminal - e os programas iniciados a partir dela - serão executados com a nova conta de usuário (ex.: root); todos os demais programas continuarão rodando com a conta do usuário original, incluindo novas janelas de terminal.
Usando o comando su
Sintaxe:
su [opções] [comandos] - [nome_usuário]
A forma mais simples é usando o comando su sem nenhum parâmetro:
$ su
Se não passarmos nenhum parâmetro ao comando su, o sistema assumirá que queremos nos logar como usuário root, como no exemplo acima. Podemos obter o mesmo efeito com o comando su root
Para alterar o proprietário da sessão atual (usuário logado) para outro usuário, simplesmente digite su seguido do nome do novo usuário:
$ su fernanda
Note que em ambos os casos é necessário digitar a senha do usuário que deseja logar-se.
Para encerrar a sessão iniciada com o su e voltar ao usuário original, basta emitir o comando exit:
$ exit
Ou ainda o comando logout (caso tenha usado o su -) ou ainda pressionar as teclas Ctrl + d.
Para confirmarmos que o usuário realmente está logado, ou saiu de sua sessão, podemos emitir o comando whoami:
# whoami
Note que alguns shells, como o bash, trazem essa informação no próprio prompt.
O comando su, por padrão, mantém o diretório atual e as variáveis de ambiente do usuário original, não alterando esses parâmetros para o novo usuário. Note nos exemplos anteriores que, apesar de termos mudado o usuário de fabio para root e também para fernanda, o diretório home que é mostrado no prompt continuou sendo sempre o do usuário que fez login originalmente no sistema - o usuário fábio.
Isso pode ser um problema pois, por exemplo, se um programa residir em um diretório que só é referenciado na variável de ambiente PATH do root, e não na do usuário original (fábio no nosso exemplo), teremos de digitar seu caminho completo, caso contrário o comando não será encontrado.
Veja na figura a seguir como, ao mudarmos o usuário de fabio para root o diretório home continua sendo o do fabio:
Para evitar esse e outros problemas que possam ocorrer por conta desse comportamento padrão do comando su, devemos usar o comando seguido de um espaço e um hífen, como a seguir:
$ su -
Desta forma, o diretório atual é alterado para o diretório home do usuário que se logou com o su (veja que o diretório mudou para /root no exemplo acima), e as variáveis de ambiente são alteradas também para as do novo usuário.
Podemos também digitar o seguinte para obter o mesmo efeito:
$ su - root
ou
$ su - fernanda
Outras opções do comando su
O comando su não possui muitas opções, como por exemplo:
-c Executar o programa que é digitado logo após o su na mesma linha, com os privilégios do novo usuário, e voltar imediatamente à conta do usuário original após o término da execução do programa.
Vejamos um exemplo: O usuário fabio tentará executar o comando fdisk -l para ver as partições existentes no sistema - porém ele não tem permissão para usar esse comando. Podemos então usar o su -c para executar esse comando e voltar imediatamente à conta de fabio sem ter de mudar para a conta de root:
Note o uso das aspas em torno do comando passado para exibição, e veja também que após sua execução o prompt mostra que o usuário atual é o fabio.
-l Fornece um ambiente similar ao que o usuário esperaria ver caso tivesse se logado inicialmente no sistema.
O comportamento do comando su pode ser alterado configurando-se algumas opções no arquivo /etc/login.defs. Veremos a configuração desse arquivo em um outro artigo.
Você também pode assistir a um vídeo sobre o assunto no canal do YouTube Bóson Treinamentos:
loading...
-
Usando O Comando Sudo E Arquivo Sudoers No Linux
Podemos rodar aplicações com privilégios administrativos de duas formas no Linux: usando o comando su para efetuar logon como usuário root, ou usando o sistema sudo. Neste artigo vamos trabalhar com o sudo. Caso queira mais informações sobre o...
-
Criando E Excluindo Usuários No Android Via Emulador De Terminal
Neste artigo aprenderemos a criar usuários adicionais em um sistema Android. Desta forma, você poderá compartilhar seu aparelho (tablet, por exemplo) com outras pessoas em sua casa, cada um com sua própria conta de acesso. Primeiramente,...
-
Gerenciamento Básico De Usuários No Freebsd
Vamos aprender neste artigo a gerenciar contas de usuários no FreeBSD.Tipos de contas:Há três tipos principais de contas: de sistema, de usuário e de superusuário.Contas de sistemaContas de sistema são contas internas usadas para rodar serviços...
-
Permissões De Acesso A Arquivos E Diretórios E Comando Chmod
O Linux / Unix possui um sistema de permissões de acesso a arquivos e diretórios relativamente complexo.Neste sistema, existem três tipos de permissões básicas: leitura, escrita (gravação) e execução, representados respectivamente pelos caracteres...
-
Alterar Proprietário E Grupo De Arquivos - Comandos Chown E Chgrp
A segurança em sistemas Linux (e Unix em geral) é constituída a partir dos conceitos de propriedade dos arquivos e de permissões de arquivos. Neste artigo estudaremos a posse dos arquivos, falando sobre Proprietário e Grupo de um arquivo. Cada arquivo...
Linux e Unix