저는 데스크톱 5대와 서버 1대가 있고 모두 데비안에서 실행되는 소규모 사무실을 운영하고 있습니다. 방금 클라이언트를 Stretch로 업그레이드했는데 로그에 나를 괴롭히는 오류가 1개만 표시됩니다.
gnome-settings-[939]: EDID 데이터에서 프로필을 생성할 수 없습니다: ICC 파일을 저장할 수 없습니다: '/var/data/users/Debian-gdm/icc/edid-93ed9b01fe8febb07668e99b557191e9.icc' 파일을 여는 중 오류가 발생했습니다: 액세스가 거부되었습니다
gnome - 설정 - [939]: EDID 데이터에서 프로필을 생성할 수 없습니다: ICC 파일을 저장할 수 없습니다: '/var/data/users/Debian-gdm/icc/edid-93ed9b01fe8febb07668e99b557191e9.icc' 파일 열기 오류: 액세스가 거부되었습니다
gnome- settings- [939]: screen_ICC_PROFILE을 설정할 수 없습니다: '/var/data/users/vincent/icc/edid-93ed9b01fe8febb07668e99b557191e9.icc' 파일을 열지 못했습니다: 액세스가 거부되었습니다.
사용자 $HOME 폴더는 NFS를 통해 마운트되었으므로 모든 $XDG_DATA 및 $XDG_CACHE(적어도 일반 사용자의 경우)가 클라이언트에 로컬로 저장되어 있는지 확인했습니다. 2014년에 저는 다음과 같은 매뉴얼을 찾았습니다.
/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
/etc/security/pam_env.conf에서:
XDG_CACHE_HOME DEFAULT="/var/cache/users/@{PAM_USER}"
XDG_DATA_HOME DEFAULT="/var/data/users/@{PAM_USER}"
나는 이것이 Debian-gdm 사용자의 올바른 권한을 혼란스럽게 만들었다고 확신하지만 어떻게 고칠 수 있는지 모르겠습니다. 디렉토리를 생성하고 Debian-gdm과 기본 사용자 그룹에 r+w 권한을 부여하려고 시도했지만 작동하지 않았습니다. 또한 다음을 추가하여 위 스크립트에서 Debian-gdm 사용자를 제외해 보았습니다.
if [ "$USER" == "root" ] || [ "$USER" == "Debian-gdm" ]; then
, 하지만 그다지 효과적이지는 않습니다.
어떤 아이디어가 있나요?
답변1
여기서 가장 큰 문제는 /etc/profile.d/xdg_dirs.sh
이제 X 대신 wayland를 사용하기 때문에 gdm을 시작할 때 소스를 가져오지 못한다는 것입니다(Xsession 스크립트는 더 이상 시작되지 않습니다).
IMHO 이러한 변수를 파괴해서는 안됩니다. 사용자의 홈 Debian-gdm
저장 위치는 /var/lib/gdm3
이미 클라이언트의 로컬 위치에 있어야 합니다.
내가 해야 할 일은 첫 번째 호출에 /etc/pam.d/gdm-launch-environment
두 개의 호출이 있는 것을 로 설정하는 것이었습니다. 이렇게 하면 pam 모듈이 파일을 읽는 것을 방지하고 환경을 변경하지 않고 그대로 둘 수 있습니다.pam_env.so
conffile=
/dev/null
/etc/security/pam_env.conf
또 다른 해결책은 Wayland 대신 X를 사용하여 gdm을 시작하는 것입니다 WaylandEnable=false
./etc/gdm3/daemon.conf
답변2
이 질문을 드린 이후로 모든 시스템을 Stretch에서 Buster로 업그레이드했고, Bullseye로 업그레이드를 진행 중입니다. Stretch 및 Buster에 대한 @Bigon의 답변을 수락했지만 pam_env.so가 계속 생성하는 오류로 인해 원래 솔루션으로 돌아갔습니다. 아무런 문제도 본 적이 없으므로 이 버그는 전혀 해롭지 않습니다.
향후 방문자를 위해 사용자의 $HOME이 NFS에서 제공되는 경우 사용자의 캐시를 로컬에 저장하는 것이 유용하므로 $UID>=2000 개인 정보를 가진 사용자에 대해 /etc/를 통해 XDG_CACHE_HOME 환경 변수를 설정하는 것이 유용합니다. , 와 같은:
if ((`id -u`>=2000)); then
umask 0007
USER=$(id -un)
if [[ !-d "/var/cache/users/$USER" ]]; then
mkdir "/var/cache/users/$USER"
chown "$USER" "/var/cache/users/$USER"
fi
XDG_CACHE_HOME=/var/cache/users/$USER
export XDG_CACHE_HOME
NSS_SDB_USE_CACHE=yes
export NSS_SDB_USE_CACHE
fi
이 솔루션은 루트 및 Debian-gdm과 같은 시스템 사용자의 오류를 방지하고 사용자가 사용하는 세션 관리자와 독립적으로 작동합니다. 설정에서 pam_env.so에 대한 모든 참조를 제거했습니다.