Minha solução funciona para todos os shells e é feita automaticamente, portanto, não é necessária uma ação administrativa para novos usuários. Ele usa ~ / .pam_environment junto com um script curto para ser executado no login.
No login de um usuário, o script curto procura no diretório home dos usuários o arquivo .pam_environment. Se não estiver presente, ele cria e adiciona as linhas para definir XDG_CACHE_HOME e XDG_CONFIG_HOME. Note que no meu exemplo, estou colocando os arquivos .config e .cache em / home / nfs_users / username /
Também é possível colocá-los em / tmp / username /. Estes serão destruídos a cada reinicialização. Você pode querer colocar o seu em algum lugar mais permanente.
-
Ative o uso de ~ / .pam_environment:
-
no arquivo "/etc/pam.d/common-session" adicione a seguinte linha ao final do arquivo:
sessão requerida pam_env.so
-
-
Crie um script de shell para ser executado no login do usuário. É "/etc/profile.d/local.sh". Você pode ou não já ter algo neste arquivo. Você pode adicionar o seguinte código ou criar o arquivo se ele não existir. NOTA: o diretório escolhido (neste caso / home / nfs_users /) deve existir e ser gravável por todos os usuários que fizerem login.
if [ ! -d '/home/nfs_users/'${USER} ]; then mkdir '/home/nfs_users/'${USER} fi if [ ! -e ${HOME}/.pam_environment ]; then echo 'XDG_CACHE_HOME DEFAULT="/home/nfs_users/'${USER}'/.cache"' > ${HOME}"/.pam_environment" echo 'XDG_CONFIG_HOME DEFAULT="/home/nfs_users/'${USER}'/.config"' >> ${HOME}"/.pam_environment" fi
-
Em seguida, torne o script executável:
sudo chmod +x /etc/profile.d/local.sh
-
Verifique se funciona. Efetue logout e login novamente.
echo $XDG_CONFIG_HOME
eecho $XDG_CACHE_HOME
devem retornar os diretórios apropriados. Além disso, quando você inicia a execução de aplicativos de GUI que usam o cache, os arquivos .config e .cache devem ter alguns itens neles (verifique seu conteúdo com ls).
ATUALIZAÇÃO:
Portanto, a solução antiga armazena os arquivos na memória temporária, portanto, ela será redefinida no logout e no encerramento. Para evitar isso, não armazene os arquivos em / tmp
Isso muda o passo 2. Eu escolhi criar uma pasta em / home para o nfs_users (/ home / nfs_users) que precisa ser gravável por todos os usuários que podem efetuar login. Você pode optar por colocá-lo em outro lugar. / p>