さて、LightDM(ログインマネージャー)についての私の理解から、特定のユーザーのデスクトップ環境を制限することはサポートされていないようです。それはオール・オア・ナッシング取引です。デフォルトでは、ユーザーがデスクトップ環境を選択すると、それがデフォルトのデスクトップ環境になります。次回ログインするときは、別のアカウントを選択しない限り、デフォルトでログインします。
ただし、ユーザーがこれを変更できないようにすることもできます。このユーザーは引き続き別のデスクトップ環境を選択できますが、選択しても、デフォルトは変更されません。人が変更するのではないかと心配していなければ、これが最も安全な方法だと思います。あなたがしなければならないのはそれらの.dmrcファイルを編集することです(彼らのホームディレクトリ、すなわち/ home / userにあります)。ここにデフォルトのセッションが保存されます。Sessionそのファイルの変数を必要なものに変更します。つまりubuntu、デフォルトのUnity DE、ubuntu-2dUnity 2D、およびLXDELXDEです。別の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。2つを作成する必要があります。1つはにExec、もう1つはに作成し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についても同じ手順を繰り返してください。何がある場合はTryExecDEのために、その後、LXDEは使用しないように、どちらかそれのためdetry.shスクリプトを作成する必要はありませんTryExec。明らかにこれは少しハックです。ファイルを編集する前にバックアップを作成する必要がありますが、ユーザーが正しいDEにログインしていることを確認する必要がある場合は問題なく機能します。