Em nossa rede, todos os IDs de usuário e grupo são distribuídos por meio do NIS de um servidor central e o diretório $HOME
de cada usuário está em uma pasta montada que mora naquele servidor central.
Obviamente, o usuário tem um GID diferente de root
e, portanto, root
não tem acesso à pasta $HOME
montada, dificultando (se não for impossível) para o usuário executar algo como sudo apt update
como isso precisa de acesso a $HOME
como visto por sudo
.
Minha pergunta é, posso ter um local de máquina $HOME
para os arquivos & amp; pastas em que sudo
precisa de acesso enquanto o $HOME
para meu outro trabalho (não sudo
) continua apontando para a pasta montada?
Informações adicionais:
[user@machine ~]$ id
uid=544(user) gid=40(src) groups=40(src),101(systemd-journal)
[user@machine ~]$ sudo id
uid=0(root) gid=0(root) groups=0(root),40(src),101(systemd-journal),600(visitors),13010(hlcc),19016(identhw),51107(cadadm)
[user@machine ~]$ sh -c 'echo $HOME'
/net/server/home/user
[user@machine ~]$ sudo sh -c 'echo $HOME'
/net/server/home/user
Como posso alterar o resultado da última linha (por exemplo, a sudo
versão de $HOME
) para uma pasta local em machine
em vez do caminho de rede montado?
Editar:
Obrigado pelas respostas. Acontece que minha pergunta era quase idêntica a esta em unix.stackexchange.com .
Também descobri que o problema que tive com apt-get update
não estava relacionado à variável de ambiente HOME
, mas sim ao fato de que eu estava chamando sudo apt-get update
do meu ( user
' s) pasta home, similar a esta questão que pode ser resolvida simplesmente chamando sudo apt-get update
de outra pasta, por exemplo %código%.
Mas desde que minha pergunta aqui foi mais sobre o /
visto por HOME
, eu aceitei resposta do techraf porque Ele não requer nenhum parâmetro adicional ou definições na linha de comando sudo
.