Oke, dari pemahaman saya tentang LightDM (manajer login) sepertinya tidak didukung untuk membatasi lingkungan desktop untuk pengguna tertentu . Ini adalah kesepakatan semua atau tidak sama sekali. Secara default, ketika pengguna memilih lingkungan desktop, itu akan menjadi lingkungan desktop default mereka. Ketika mereka login lain kali, kecuali mereka memilih yang lain, mereka akan login ke default mereka.
Namun, Anda dapat membuatnya agar pengguna tidak dapat mengubah ini. Pengguna ini masih dapat memilih lingkungan desktop yang berbeda, tetapi jika mereka melakukannya, itu tidak akan mengubah standarnya. Saya percaya ini adalah cara teraman untuk melakukan ini, jika Anda tidak khawatir orang itu akan mengubahnya. Yang harus Anda lakukan adalah mengedit .dmrcfile mereka (terletak di direktori home mereka, yaitu / home / user). Di sinilah sesi default mereka disimpan. Ubah Sessionvariabel dalam file itu menjadi apa pun yang Anda inginkan, yaitu ubuntuUnity DE default, ubuntu-2dadalah Unity 2D, dan LXDELXDE. Untuk membuatnya jadi ini tidak akan diubah jika mereka masuk dengan DE lain, kita bisa membuatnya tidak berubah (tidak dapat diubah):
sudo chattr +i /home/user/.dmrc
Sekarang tidak ada yang dapat mengubah file itu (root dan program lain yang disertakan) kecuali Anda menghapus tanda yang tidak dapat diubah:
sudo chattr -i /home/user/.dmrc
Jika Anda benar-benar TIDAK ingin pengguna ini pernah masuk dengan DE lain, saya menemukan cara yang benar-benar gila (yaitu melakukan ini dengan risiko Anda sendiri) untuk mencapai ini. Saya agak bosan dan sepertinya ini hal yang menyenangkan untuk dicoba. Semua DE berbeda yang bisa dilihat oleh LightDM disimpan /usr/share/xsessionssebagai .desktopfile. FYI, Anda dapat menghapus semua yang tidak ingin ditampilkan di layar masuk (tapi itu akan menghapusnya untuk SEMUA pengguna). Jika Anda membuka salah satu dari ini, mereka cukup mudah. Itu adalah file peluncur desktop dasar, sama seperti semua pintasan di desktop Anda. Masing-masing berisiExecbaris, yang akan dieksekusi ketika Anda memilih DE Anda di layar login (yaitu DE mana yang diluncurkan). Kami akan mengambil keuntungan dari ini dan memeriksa pengguna mana yang masuk. Jika pengguna adalah pengguna terbatas kami, kami akan memaksa mereka untuk menggunakan DE tertentu.
Pertama, untuk setiap .desktopfile di dalam, /usr/share/xsessions/Anda harus membuat skrip /usr/local/bin. Sebagai contoh saya, saya akan menunjukkan bagaimana melakukan ini untuk ubuntu.desktop, yang merupakan Unity DE, dan menggunakan LXDE sebagai DE kita memaksa pengguna terbatas kami (pengguna terbatas) untuk menggunakan. Melihat LXDE.desktop, kita dapat melihat bahwa Execperintahnya adalah /usr/bin/startlxdedan tidak ada TryExecperintah. Ketika Anda membuka ubuntu.desktopkita melihat bahwa Execperintahnya adalah gnome-session --session=ubuntudan TryExecperintahnya adalah unity. The TryExecperintah hanya apa yang terdengar seperti. Setelah menjalankan Execperintah, itu akan mencoba menjalankan TryExecperintah, tetapi jika gagal, itu tidak akan crash.
Sekarang, dengan mengambil perintah yang kita dapatkan dari .desktopfile, kita dapat membuat skrip kita. Kami akan menempatkan mereka di /usr/share/bin. Kita perlu membuat dua, satu untuk Execdan satu untuk TryExec. Kami akan melakukan sesuatu seperti ini:
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
Kami hanya menguji apakah orang yang masuk adalah pengguna terbatas kami, dan menjalankan DE yang sesuai. Sekarang, kita perlu memastikan mereka dapat dieksekusi:
sudo chmod +x /usr/local/bin/ubuntude.sh
sudo chmod +x /usr/local/bin/ubuntudetry.sh
Kita sekarang perlu mengubah kita ubuntu.desktopsehingga akan memanggil skrip kita, bukan DEs yang sebenarnya. Komentari Execdan TryExecbaris dalam file, dan ganti dengan ini:
Exec=/usr/local/bin/ubuntude.sh
TryExec=/usr/local/bin/ubuntudetry.sh
Cukup ulangi proses untuk DE lain yang mungkin Anda miliki. Jika tidak ada TryExecDE, maka tidak perlu membuat skrip detry.sh juga, karena LXDE tidak menggunakan a TryExec. Jelas ini agak sedikit meretas, dan Anda harus memastikan bahwa Anda mencadangkan file apa pun sebelum mengeditnya, tetapi ini akan berfungsi jika Anda benar-benar perlu memastikan bahwa pengguna masuk ke DE yang benar.