좋아, LightDM (로그인 관리자)에 대한 이해로 특정 사용자 의 데스크탑 환경을 제한하는 것은 지원되지 않는 것 같습니다 . 그것은 전부 또는 아무것도 아닌 거래입니다. 기본적으로 사용자가 데스크탑 환경을 선택하면 기본 데스크탑 환경이됩니다. 다음에 로그인 할 때 다른 것을 선택하지 않으면 기본값으로 로그인됩니다.
그러나 사용자가이를 변경할 수 없도록 만들 수 있습니다. 이 사용자는 여전히 다른 데스크탑 환경을 선택할 수는 있지만 기본 환경을 변경하지는 않습니다. 나는 당신이 그 사람이 그것을 바꿀 걱정이 없다면 이것이 가장 안전한 방법이라고 생각합니다. .dmrc
홈 디렉토리 (예 : / home / user)에있는 파일을 편집하기 만하면 됩니다. 기본 세션이 저장되는 곳입니다. Session
해당 파일 의 변수를 원하는대로 변경하십시오. 즉 ubuntu
기본 Unity DE, ubuntu-2d
Unity 2D 및 LXDE
LXDE입니다. 다른 DE로 로그인해도 변경되지 않도록하기 위해 간단히 변경할 수 없습니다 (변경 불가능).
sudo chattr +i /home/user/.dmrc
변경할 수없는 플래그를 제거하지 않으면 아무도 해당 파일 (루트 및 기타 프로그램 포함)을 변경할 수 없습니다.
sudo chattr -i /home/user/.dmrc
이 사용자가 다른 DE로 로그인하는 것을 절대로 원하지 않는다면, 이것을 달성하기 위해 정말로 해킹 된 방법을 알아 냈습니다 (즉, 귀하의 책임 으로이 작업을 수행함). 나는 지루했고 일종의 재미있는 시도처럼 보였다. LightDM에서 볼 수있는 다른 DE는 모두 파일 /usr/share/xsessions
로 유지됩니다 .desktop
. 참고로, 로그인 화면에 표시하지 않으려는 모든 항목을 삭제할 수 있습니다 (그러나 모든 사용자에 대해 제거됩니다). 이 중 하나를 열면 매우 간단합니다. 데스크탑의 모든 바로 가기와 마찬가지로 기본 데스크탑 실행기 파일입니다. 각각은Exec
로그인 화면에서 DE를 선택하면 (즉, 어떤 DE가 시작되는지) 실행됩니다. 우리는 이것을 이용하고 로그인하는 사용자를 확인합니다. 사용자가 제한된 사용자 인 경우 특정 DE를 사용하도록합니다.
먼저, 각 .desktop
파일에 대해 에서 /usr/share/xsessions/
스크립트를 작성해야합니다 /usr/local/bin
. 예를 들어, ubuntu.desktop
Unity DE 인에 대해이 작업을 수행하는 방법을 보여 드리고 LXDE를 DE로 사용하여 제한된 사용자 (restricteduser)가 사용하도록합니다. LXDE.desktop을 보면 Exec
명령이 /usr/bin/startlxde
있고 TryExec
명령 이 없음을 알 수 있습니다 . 당신이 열 때 ubuntu.desktop
우리가 볼 Exec
명령은 다음 gnome-session --session=ubuntu
과 TryExec
명령입니다 unity
. TryExec
명령은 같은 소리 것입니다. Exec
명령을 실행 한 후에는 명령을 실행 하려고 시도 TryExec
하지만 실패하면 충돌하지 않습니다.
이제 .desktop
스크립트를 만들 수 있는 파일 에서 얻은 명령을 가져옵니다 . 우리는 그들을 넣을 것입니다 /usr/share/bin
. 우리는 하나를위한 것과 하나를위한 것을 만들어야 Exec
합니다 TryExec
. 우리는 다음과 같이 할 것입니다 :
ubuntude.sh
#!/bin/bash
if [ `/usr/bin/whoami` = "restricteduser" ] ; then
/usr/bin/startlxde
else
gnome-session --session=ubuntu
fi
ubuntudetry.sh
#!/bin/bash
if [ `/usr/bin/whoami` != "restricteduser" ] ; then
unity
fi
로그인 한 사용자가 제한된 사용자인지 테스트하고 적절한 DE를 시작합니다. 이제 우리는 그것들이 실행 가능한지 확인해야합니다 :
sudo chmod +x /usr/local/bin/ubuntude.sh
sudo chmod +x /usr/local/bin/ubuntudetry.sh
이제 ubuntu.desktop
실제 DE 대신 스크립트를 호출하도록 변경해야합니다 . 파일에서 Exec
및 TryExec
행을 주석 처리하고 다음 과 같이 바꾸십시오.
Exec=/usr/local/bin/ubuntude.sh
TryExec=/usr/local/bin/ubuntudetry.sh
다른 DE에 대해서도이 과정을 반복하십시오. 더있는 경우 TryExec
DE를 들어, 다음 LXDE는 사용하지 않는 한, 중 이에 대한 detry.sh 스크립트를 만들 필요가 없습니다 TryExec
. 분명히 이것은 약간 해킹이므로 파일을 편집하기 전에 파일을 백업해야하지만 사용자가 올바른 DE에 로그인하고 있는지 확인해야하는 경우에는 제대로 작동합니다.