Não acho que exista a resposta genérica para resolver todos esses problemas. Você não pode ser dois usuários ao mesmo tempo. Sempre que você executar um comando, o shell terá que adivinhar qual usuário esse comando deve ser executado. Quando você cria um arquivo, ele deve adivinhar quem deve pertencer e assim por diante.
Eu faço seu quinto parágrafo. Eu tenho um script em /usr/local/bin
(eu chamei de becomeme
) que origina meu /home/user/.bashrc
e adapta PATH, LD_LIBRARY_PATH, MANPATH e PKG_CONFIG_PATH, para incluir caminhos no meu diretório pessoal. Eu também coloco alguns wrappers, por exemplo, para substituir vi
por HOME=/home/me vi
. Eu basicamente embrulho coisas para procurar o diretório home do meu usuário para configuração. Para os casos de uso simples bashrc, vi e screen, ele funciona razoavelmente bem.
Isso, no entanto, funciona apenas até certo ponto, porque acessar meu diretório home como outro usuário geralmente significa que o usuário precisa ter permissões de gravação para alguns arquivos e diretórios, o que eu não quero. Então, é mais um hack para os casos mais comuns, vi
e screen
principalmente.
Não é muito complicado, pois eu só preciso lembrar de digitar becomeme
depois de mudar para outro usuário. Para root, isso funcionou rapidamente, para outros usuários tive que dar permissão aos arquivos em minha casa primeiro.
Outra abordagem, que ainda não experimentei, mas que funcione para o seu caso de uso:
Crie outro usuário com o UID 0 e a casa do usuário. Você simplesmente precisa adicionar uma linha a /etc/passwd
e /etc/shadow
. Por exemplo, se o seu nome de usuário root for admin, a linha correspondente em /etc/passwd
pode ser assim:
admin:x:0:0:My personalized root account:/home/mynormaluser:/bin/bash
Em seguida, você digita passwd admin
para criar uma entrada em /etc/shadow
. Se você fizer login como admin
agora, será UID 0, ou seja, root, mas terá seu diretório pessoal normal e, portanto, suas configurações de seu usuário normal. Ele também tem sua própria senha, você não precisa compartilhar. Isso não funciona para o NFS-home (veja root_squash).
Embora isso possa funcionar, ele pode criar alguns pequenos problemas com permissões de arquivos, sempre que você criar arquivos como usuário admin
em seu diretório pessoal. Você pode contornar esses problemas com máscaras de criação adequadas e um grupo designado que você compartilha apenas entre seu usuário e admin
.