Configure o ambiente depois de executar o su sem hífen

0

Como você configuraria as variáveis de ambiente corretas e quaisquer outras configurações que deveriam ser definidas ao usar o comando su - username , mas sem o hífen?

ou seja,

Se eu usar

su - fooUser

Como eu simularia o acima depois de executar o su sem o hífen?

su fooUser

What do I need to run here to setup all the configuration and everything else that the hyphen sets up?

    
por SDK 02.10.2012 / 11:18

1 resposta

1

Resposta curta: você não pode.

A resposta mais longa e correta: Você pode mover tudo de /etc/profile e equivalente a /etc/bashrc e equivalente (os detalhes dependem do (s) shell (s) que você está usando) e o primeiro fonte é o último; Isso fará com que você fique o mais próximo possível (com a ressalva de que algumas coisas podem precisar de testes extras se / elif / fi se eles devem ou não devem ser executados para shells de login).

O hífen extra é um atalho para "-l" ou "--login", que diz su(1) como invocar o shell: Por convenção, um shell sabe que é um shell de "login" se seu argv[0] (o nome que ele recebe disse que foi iniciado pois, que não precisa ser nada parecido com o nome do arquivo de seu binário) começa com um traço; por exemplo, o bash se encontrará "chamado" -bash ou -/bin/bash . Você pode confirmar isso efetuando login no console e executando ps o pid,comm,args $$ - o "args" iniciará com um traço. Um shell de login usa um conjunto diferente de arquivos de inicialização, que é a principal diferença; veja a página de manual do (s) seu (s) shell (s) para detalhes (por exemplo, invocação do bash ) . Há algumas sutilezas remanescentes sobre o ambiente que é definido antes de o bash começar, mas isso pode ser corrigido nesses arquivos de inicialização.

Neste ponto, é útil dar um passo para trás e considerar: Qual problema você está tentando resolver? Mudar sua identidade não deve ser algo que você faz rotineiramente; se você se encontrar precisando, você deve tentar descobrir como consertar a coisa subjacente que você está tentando não exigir.

    
por 29.04.2013 / 19:01

Tags