Ambiente de shell para su

1

Eu tenho alguns aliases e modificações em ls que gostaria de ter disponível o tempo todo. É possível definir variáveis de ambiente para uso quando eu estou logado como root depois que eu sudo com sudo su ?

    
por ridogi 21.01.2010 / 01:17

4 respostas

1

Além do fato de que o sudo su é uma idéia terrível porque ignora a auditoria que o sudo fornece, você poderia fazer isso de duas maneiras: modificar o .profile do root, que afeta todos os usuários do sudo ou configurar um shell script que você executa após o sudo su para fornecer as variáveis e aliases necessários.

    
por 21.01.2010 / 01:24
1

Não existe um .profile apenas para su, mas você pode escrever um .profile que detecta se está sofrendo.

Se você for su'd, então "who am i | awk '{print $ 1}'" será o usuário de onde você veio, enquanto que "whoami" será o usuário que você se tornou.

Se estes são diferentes, então você su'd, então faça o que você precisa.

    
por 21.01.2010 / 03:49
1

O "su" nos comandos su e sudo , apesar de parecerem semelhantes, significa coisas diferentes.

su significa usuário substituto e é mais comumente chamado de usuário do comutador. sudo significa super usuário, ou "faça esta ação como o super usuário".

Se você executar um comando que é reservado para o root usando sudo , seu ambiente (caminhos, variáveis, etc) será usado, isto é, o que está definido em / Users /$your_username/.profile arquivo.

Se você digitar su , alternará para o usuário root e poderá acessar arquivos e executar binários limitados a esse usuário, mas fará isso com o ambiente do usuário padrão anterior.

Se você digitar su - (observe o menos), você mudará para o usuário root e obterá o ambiente dele.

No Mac, o usuário root, localizado em / var / root, NÃO possui um arquivo .profile. A solução é criar uma (você pode copiar o arquivo .profile do usuário), colocá-lo em / var / root / e adicionar quaisquer aliases, caminhos, etc, necessários para este arquivo.

Para invocar o arquivo, você precisará fazer logout como usuário root e fazer login novamente.

    
por 23.01.2010 / 13:26
0

Como jRandomUser, digite

sudo bash

(ou qualquer shell que você esteja usando) faz de você 'root' com o perfil shell do jRandomUser. Digite

exit

quando você terminar de descarregar seus privilégios e voltar a trabalhar como jRandomUser. Obviamente, use com cuidado. Meu .bashrc define meu prompt para uma cor berrante sempre que meu UID == 0.

    
por 24.01.2010 / 21:38