Comando Linux 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 COMMAND | Especifique 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 , –login | Forneç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 SHELL | O shell que será chamado. O shell chamado é escolhido (prioridade mais alta primeiro):
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-environment | Preserve o ambiente atual, exceto pelas seguintes variáveis:
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:
|
Configuração
As seguintes variáveis de configuração, localizadas no arquivo /etc/login.defs , alteram o comportamento de su :
Variável | Tipo | Descrição |
CONSOLE_GROUPS | corda | Lista 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_HOME | boleano | Indique 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_PATH | corda | Se 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_SUPATH | corda | Se 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_FILE | corda | Se definido, toda a atividade su é registrada nesse arquivo, conhecido como sulog . |
SU_NAME | corda | Se 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_ENAB | boleano | Habilite 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 0 | Sucesso ( somente ajuda ). |
1 | Falha no sistema ou autenticação . |
126 | O comando solicitado não foi encontrado. |
127 | O 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 .
Comandos relacionados
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.