fbpx

Comandos Linux – Comando su

Comando Linux su

comando su

Nos sistemas operacionais do tipo Unix, o comando su altera o ID do usuário atual para o do superusuário ou outro usuário especificado.

Este documento cobre a versão GNU / Linux do su .

Descrição

O comando su , abreviação de usuário substituto ou alternador , permite que o usuário atual atue como outro usuário durante a sessão de login atual .

Sintaxe

su [ opções ] [ nome de usuário ]

Se nenhum nome de usuário for especificado, su assumirá como superusuário (root) o padrão.

Argumentos adicionais podem ser fornecidos após o nome de usuário e, nesse caso, são fornecidos ao shell de login do usuário . Em particular, um argumento -c fará com que o próximo argumento seja tratado como um comando pela maioria dos intérpretes de comando. O comando será executado pelo shell especificado em / etc / passwd para o usuário de destino.

O argumento opcional ”  ” (um hífen) pode ser usado para fornecer um ambiente semelhante ao que o usuário esperaria se o usuário estivesse conectado diretamente.

Você pode usar o argumento ”  ” para separar as opções su dos argumentos fornecidos ao shell.

O usuário será solicitado a fornecer uma senha , se apropriado. Senhas inválidas produzirão uma mensagem de erro. Todas as tentativas, válidas e inválidas, são registradas para detectar abuso do sistema.

O ambiente atual é passado para o novo shell. O valor de $ PATH é redefinido para ” / bin: / usr / bin ” para usuários normais ou ” / sbin: / bin: / usr / sbin: / usr / bin ” para o superusuário. Isto pode ser alterado com as ENV_PATH e ENV_SUPATH definições em /etc/login.defs .

Um logon do subsistema é indicado pela presença de um ” * ” como o primeiro caractere do shell de logon. O diretório inicial fornecido será usado como raiz de um novo sistema de arquivos no qual o usuário está realmente conectado.

Opções

-c , –command COMMANDEspecifique um comando que será chamado pelo shell usando seu -c .

O comando executado não terá terminal de controle . Esta opção não pode ser usada para executar programas interativos que precisam de um TTY de controle .

 , -l , –loginForneça um ambiente semelhante ao que o usuário esperaria se o usuário efetuasse login diretamente.

Quando  é usado, deve ser especificado como a última opção su . As outras formas ( -l e –login ) não possuem essa restrição.

-s , –shell SHELLO shell que será chamado.

O shell chamado é escolhido (prioridade mais alta primeiro):

  • O shell especificado com –shell .
  • Se –preserve-environment for usado, o shell especificado pela variável de ambiente $ SHELL .
  • O shell indicado na entrada / etc / passwd para o usuário de destino.
  • / bin / sh se um shell não puder ser encontrado por qualquer método acima.

Se o usuário de destino tiver um shell restrito (ou seja, o campo shell da entrada desse usuário em / etc / passwd não estiver listado em / etc / shells ), a opção –shell ou a variável de ambiente $ SHELL não serão consideradas , a menos que su seja chamado pela raiz.

-m , -p , –preserve-environmentPreserve o ambiente atual, exceto pelas seguintes variáveis:

$ PATHredefina de acordo com as opções /etc/login.defs ENV_PATH ou ENV_SUPATH (veja abaixo)
$ IFSredefina para ” <espaço> <guia> <nova linha> “, se estiver definido.

Se o usuário de destino tiver um shell restrito, essa opção não terá efeito (a menos que su seja chamado pela raiz).

Observe que o comportamento padrão para o ambiente é o seguinte:

  • As variáveis ​​de ambiente $ HOME , $ SHELL , $ USER , $ LOGNAME , $ PATH e $ IFS são redefinidas.
  • Se –login não for usado, o ambiente será copiado, exceto pelas variáveis ​​acima.
  • Se –login for usado, as variáveis ​​de ambiente $ TERM , $ COLORTERM , $ DISPLAY e $ XAUTHORITY serão copiadas se estiverem definidas.
  • Outros ambientes podem ser configurados pelos módulos PAM.

Configuração

As seguintes variáveis ​​de configuração, localizadas no arquivo /etc/login.defs , alteram o comportamento de su :

VariávelTipoDescrição
CONSOLE_GROUPScordaLista de grupos a serem adicionados aos grupos suplementares do usuário definidos ao efetuar login no console (conforme determinado pela configuração CONSOLE ). O padrão é ” nenhum “.

Use isso com cautela; é possível que os usuários obtenham acesso permanente a esses grupos, mesmo quando não estiverem conectados no console.

DEFAULT_HOMEboleanoIndique se o login é permitido, mesmo que o usuário solicitante não possa mudar para o diretório inicial solicitado. O padrão é não .

Se definido como yes , o usuário fará login no diretório raiz ( / ) se não for possível fazer o cd no diretório inicial dele.

ENV_PATHcordaSe definido, será usado para definir a variável de ambiente PATH quando um usuário comum efetuar login. O valor é uma lista de caminhos separados por dois pontos (por exemplo ” / bin: / usr / bin “) e pode ser precedido por PATH = . O valor padrão é ” PATH = / bin: / usr / bin “.
ENV_SUPATHcordaSe definido, será usado para definir a variável de ambiente PATH quando o superusuário efetuar login. O valor é uma lista de caminhos separados por dois pontos (por exemplo ” / sbin: / bin: / bin: / usr / sbin: / usr / bin “) e pode ser precedido por PATH = . O valor padrão é ” PATH = / sbin: / bin: / usr / sbin: / usr / bin “.
SULOG_FILEcordaSe definido, toda a atividade su é registrada nesse arquivo, conhecido como sulog .
SU_NAMEcordaSe definido, o nome do comando a ser exibido ao executar ” su – “. Por exemplo, se isso for definido como ” su “, um ps exibirá o comando como ” -su “. Se não definido, o ps exibirá o nome do shell realmente sendo executado, por exemplo, algo como ” -sh “.
SYSLOG_SU_ENABboleanoHabilite o log ” syslog ” da atividade su – além do log de arquivo sulog .

Valores de saída

Em caso de sucesso, su retorna o valor de saída do comando que ele executou.

Se este comando foi finalizado por um sinal , su retornará o número desse sinal mais 128 .

Se su tiver que matar o comando (porque foi solicitado a finalizar e o comando não foi finalizado a tempo), su retornará 255 .

Alguns valores de saída de su são independentes do comando executado:

0 0Sucesso ( somente ajuda ).
1Falha no sistema ou autenticação .
126O comando solicitado não foi encontrado.
127O comando solicitado não pôde ser executado.

Exemplos

su - esperança

Alterne o ID do usuário atual para o da esperança do usuário e configure o ambiente para o ambiente de login da esperança .

csh – O interpretador de comandos do shell C.
env – Relate o valor das variáveis ​​de ambiente.
ksh – O interpretador de comandos do shell Korn.
login – Inicia uma sessão em um sistema.
sh – O interpretador de comandos do Bourne shell.
sudo – Executa um comando como superusuário.

22 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900

Copyright © Linux Force Security  - Desde 2011.