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 .