Ok, pelo meu entendimento do LightDM (o gerenciador de login), ele não parece suportado para restringir os ambientes da área de trabalho para um usuário específico . É um acordo de tudo ou nada. Por padrão, quando um usuário escolhe um ambiente de área de trabalho, ele se torna seu ambiente de área de trabalho padrão. Quando eles fizerem login na próxima vez, a menos que eles escolham outro, eles serão conectados ao seu padrão.
Você pode, no entanto, fazer com que o usuário não possa mudar isso. Esse usuário ainda poderá selecionar um ambiente de área de trabalho diferente, mas, se o fizer, não mudará o padrão. Acredito que esta é a maneira mais segura de fazer isso, se você não estiver preocupado que a pessoa mude. Tudo o que você precisa fazer é editar o .dmrc
arquivo (localizado no diretório inicial, por exemplo, / home / user). É aqui que a sessão padrão é armazenada. Mude a Session
variável nesse arquivo para o que quiser, ou ubuntu
seja, o Unity DE padrão, o ubuntu-2d
Unity 2D e o LXDE
LXDE. Para fazer isso, isso não será alterado se eles fizerem login com outro DE, podemos simplesmente torná-lo imutável (imutável):
sudo chattr +i /home/user/.dmrc
Agora ninguém poderá alterar esse arquivo (raiz e outros programas incluídos), a menos que você remova o sinalizador imutável:
sudo chattr -i /home/user/.dmrc
Se você absolutamente NÃO deseja que esse usuário efetue login com outro DE, eu descobri uma maneira realmente hacky (ou seja, faça isso por seu próprio risco) para fazer isso. Eu estava meio entediado e isso parecia uma coisa divertida de se tentar. Todos os diferentes DEs que o LightDM pode ver são mantidos /usr/share/xsessions
como .desktop
arquivos. Para sua informação, você pode excluir qualquer uma dessas opções que não deseja que apareça na tela de login (mas isso a removerá para TODOS os usuários). Se você abrir qualquer um deles, eles são bastante diretos. Eles são arquivos básicos do iniciador de área de trabalho, assim como todos os atalhos na área de trabalho. Cada um contém umExec
linha, que é executada quando você escolhe seu DE na tela de login (ou seja, qual DE é iniciado). Vamos tirar proveito disso e verificar qual usuário está efetuando login. Se o usuário for nosso usuário restrito, forçaremos o uso de um determinado DE.
Primeiro, para cada .desktop
arquivo em que /usr/share/xsessions/
você precisará criar um script /usr/local/bin
. No meu exemplo, mostrarei como fazer isso ubuntu.desktop
, que é o DE da unidade, e usando o LXDE como DE, estamos forçando nosso usuário restrito (usuário restrito) a usar. Olhando para o LXDE.desktop, podemos ver que o Exec
comando é /usr/bin/startlxde
e não existe nenhum TryExec
comando. Quando você abre ubuntu.desktop
, vemos que o Exec
comando é gnome-session --session=ubuntu
e o TryExec
comando é unity
. O TryExec
comando é exatamente o que parece. Depois de executar o Exec
comando, ele tentará executá-lo TryExec
, mas se falhar, não falhará.
Agora, pegando os comandos que obtemos dos .desktop
arquivos, podemos criar nossos scripts. Vamos colocá-los /usr/share/bin
. Precisamos fazer dois, um para o Exec
e outro para o TryExec
. Faremos algo assim:
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
Estamos apenas testando se a pessoa que está efetuando login é nosso usuário restrito e ativando o DE apropriado. Agora, precisamos garantir que eles sejam executáveis:
sudo chmod +x /usr/local/bin/ubuntude.sh
sudo chmod +x /usr/local/bin/ubuntudetry.sh
Agora precisamos alterar o nosso ubuntu.desktop
para que ele chame nossos scripts, em vez dos DEs reais. Comente as linhas Exec
e TryExec
no arquivo e substitua-as por:
Exec=/usr/local/bin/ubuntude.sh
TryExec=/usr/local/bin/ubuntudetry.sh
Apenas repita o processo para quaisquer outros DEs que você possa ter. Se não houver TryExec
um DE, não será necessário criar um script detry.sh para ele, pois o LXDE não usa a TryExec
. Obviamente, isso é um pouco invasivo e você deve fazer o backup dos arquivos antes de editá-los, mas funcionará se você precisar absolutamente garantir que um usuário esteja efetuando login na DE correta.