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 .dmrc
file mereka (terletak di direktori home mereka, yaitu / home / user). Di sinilah sesi default mereka disimpan. Ubah Session
variabel dalam file itu menjadi apa pun yang Anda inginkan, yaitu ubuntu
Unity DE default, ubuntu-2d
adalah Unity 2D, dan LXDE
LXDE. 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/xsessions
sebagai .desktop
file. 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 berisiExec
baris, 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 .desktop
file 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 Exec
perintahnya adalah /usr/bin/startlxde
dan tidak ada TryExec
perintah. Ketika Anda membuka ubuntu.desktop
kita melihat bahwa Exec
perintahnya adalah gnome-session --session=ubuntu
dan TryExec
perintahnya adalah unity
. The TryExec
perintah hanya apa yang terdengar seperti. Setelah menjalankan Exec
perintah, itu akan mencoba menjalankan TryExec
perintah, tetapi jika gagal, itu tidak akan crash.
Sekarang, dengan mengambil perintah yang kita dapatkan dari .desktop
file, kita dapat membuat skrip kita. Kami akan menempatkan mereka di /usr/share/bin
. Kita perlu membuat dua, satu untuk Exec
dan 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.desktop
sehingga akan memanggil skrip kita, bukan DEs yang sebenarnya. Komentari Exec
dan TryExec
baris 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 TryExec
DE, 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.