$ GDM_USER não tem acesso a $ XDG_DATA depois de alterar manualmente a localização de $ XDG_DATA

0

Eu tenho um pequeno escritório com 5 desktops e um servidor, todos eles rodando no Debian. Acabei de atualizar os clientes para o Stretch e ver apenas 1 erro no diário que me incomoda:

gnome-settings-[939]: failed to create profile from EDID data: failed to save ICC file: Error opening file ‘/var/data/users/Debian-gdm/icc/edid-93ed9b01fe8febb07668e99b557191e9.icc’: Access denied
gnome-settings-[939]: failed to create profile from EDID data: failed to save ICC file: Error opening file ‘/var/data/users/Debian-gdm/icc/edid-93ed9b01fe8febb07668e99b557191e9.icc’: Access denied
gnome-settings-[939]: failed to set screen _ICC_PROFILE: Opening file ‘/var/data/users/vincent/icc/edid-93ed9b01fe8febb07668e99b557191e9.icc’ failed: Access denied

Como nossos usuários $ HOME pastas são montados através do NFS, certifiquei-me de que todos os $ XDG_DATA e $ XDG_CACHE (pelo menos para usuários regulares) sejam armazenados localmente no cliente. Em 2014 eu encontrei um manual para fazer assim:

Em /etc/profile.d/xdg_dirs.sh:

if [ "$USER" == "root" ]; then
  unset XDG_CACHE_HOME
  unset XDG_DATA_HOME
else
  test -d $XDG_CACHE_HOME || mkdir -p $XDG_CACHE_HOME
  test -d $XDG_DATA_HOME || mkdir -p $XDG_DATA_HOME
fi

Em /etc/security/pam_env.conf:

XDG_CACHE_HOME DEFAULT="/var/cache/users/@{PAM_USER}"
XDG_DATA_HOME  DEFAULT="/var/data/users/@{PAM_USER}"

Tenho certeza que isso atrapalhou as permissões corretas para o usuário Debian-gdm, mas não sei como resolvê-lo. Eu tentei criar o diretório e dar permissões de r + w para o Debian-gdm e para os grupos de usuários padrão, mas isso não funcionou. Eu também tentei excluir o usuário Debian-gdm do script acima, adicionando:

if [ "$USER" == "root" ] || [ "$USER" == "Debian-gdm" ]; then

, mas isso também não funcionou.

Alguma opinião?

    
por zenlord 31.12.2017 / 11:34

1 resposta

1

Acredito que o principal problema aqui é que /etc/profile.d/xdg_dirs.sh não é originado ao iniciar o gdm, pois agora ele está usando o wayland e não o X (o script Xsession não é mais iniciado)

IMHO, você não deve lidar com essas variáveis. A casa do usuário Debian-gdm é armazenada em /var/lib/gdm3 , que já deveria ser local em seu cliente.

O que eu gostaria de fazer é modificar o /etc/pam.d/gdm-launch-environment , onde você tem duas chamadas para pam_env.so na primeira chamada, defina conffile= para /dev/null . Isso impedirá que o módulo pam leia o arquivo /etc/security/pam_env.conf para manter o ambiente intacto.

Uma outra solução é tentar iniciar o gdm usando X em vez de Wayland, defina WaylandEnable=false em /etc/gdm3/daemon.conf

    
por 31.12.2017 / 12:21