さて、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
。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についても同じ手順を繰り返してください。何がある場合はTryExec
DEのために、その後、LXDEは使用しないように、どちらかそれのためdetry.shスクリプトを作成する必要はありませんTryExec
。明らかにこれは少しハックです。ファイルを編集する前にバックアップを作成する必要がありますが、ユーザーが正しいDEにログインしていることを確認する必要がある場合は問題なく機能します。