当前位置: 首页 > 工具软件 > LightDM > 使用案例 >

LightDM详细介绍

娄振
2023-12-01

本文的对当前我们的业务应用开发最值得关注的是隐藏用户列表、设置手动登录、通过LightDM的机制让用户自动登录。

什么是LightDM

LightDM是运行在Debian系列操作系统上的桌面显示管理器,它的全名是Light Display Manager,表面含义是轻量级桌面显示管理器。它是FreeDesktop工程的一部分。FreeDesktop是一个致力于Linux和其他类Unix上的X窗口系统的桌面环境之间的互操作性和基础技术共享的项目,由Red Hat公司的Havoc Pennington于2000年3月创立。官方网站是:https://www.freedesktop.org。最初的名称叫XDesktopGroup(X桌面工作组),其缩写"XDG"在现在的桌面开发的工作中仍然经常被用到。Ubuntu 16.04 LTS版本使用LightDM作为默认的窗口管理器。

配置

配置文件

LightDM配置由下列位置的文件提供:

/usr/share/lightdm/lightdm.conf.d/*.conf
/etc/lightdm/lightdm.conf.d/*.conf
/etc/lightdm/lightdm.conf

最新版本的LightDM把过时的配置节SeatDefaults替换为Seat:*

系统提供的配置保存在/usr/share/lightdm/lightdm.conf.d/*.conf,普通用户不可编辑。系统管理员可以使用配置文件/etc/lightdm/lightdm.conf.d/*.conf/etc/lightdm/lightdm.conf覆盖系统配置。举例来说,如果你想覆盖系统配置的默认会话配置(/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf提供),那么你可以新建一个文件/etc/lightdm/lightdm.conf.d/50-myconfig.conf,写入如下代码:

[Seat:*]
user-session=mysession

有一个示例配置文件展示了LightDM可能识别的所有的配置,它压缩保存在:/usr/share/doc/lightdm/lightdm.conf.gz

这里还有一个额外的配置文件:/etc/lightdm/users.conf。但是如果AccountsService在你的系统上运行,那么这个配置文件将被忽略。如果你不确定配置文件是否已被忽略,可以运行:ps -aef | grep -i AccountsService

常见配置

隐藏用户列表

默认配置下,Ubuntu系统的Unity Greeter(或者一些其它系统的Greeter)展示所有可能的用户帐号列表。如果你想禁用这个功能(可能你有太多的用户或者基于安全考虑),使用以下配置。

[Seat:*]
greeter-hide-users=true

你也许需要显式启用手动登录以配合这个特性。

允许手动登录

默认配置下,Ubuntu系统的Unity Greeter(或者一些其它系统的Greeter)不允许用户手动输入用户名登录到系统。你可以用以下配置启用它:

[Seat:*]
greeter-show-manual-login=true

禁止临时帐户登录

临时帐户名是Guest。默认情况下LightDM允许你用Guest以临时用户的身份登录到会话中,从而进入系统,禁用方法是:

[Seat:*]
allow-guest=false

设置自动登录

要设置系统自动启动并登入的用户,设置autologin-user。如果设置了autologin-user-timeout,那么greeter将在自动登录发生之前显示这么多秒。在此期间如果存在用户操作超时将会取消。配置如下:

[Seat:*]
autologin-user=username
autologin-user-timeout=delay

如果你想设置自动登录到临时帐户会话可设置:

autologin-guest=true

改变默认的会话

默认的会话是由session packages(这是一个LightDM专有名词,没想到合适的翻译)提供的配置/usr/share/lightdm/lightdm.conf.d/设置的。如果你需要覆盖这些,你可以设置:

[Seat:*]
user-session=name

配置中的name指的是位于/usr/share/xsessions/*.desktop的以.dekstop扩展名结尾的文件的名称。

修改greeter

默认的greeter是由greeter packages(这是一个LightDM专有名词,没想到合适的翻译)提供的位于/usr/share/lightdm/lightdm.conf.d/的配置设置的。如果你需要覆盖这些,你可以设置:

[Seat:*]
greeter-session=name

配置中的name指的是位于/usr/share/xgreeters/*.desktop的以.dekstop扩展名结尾的文件的名称。

背景图片

LightDM不配置Greeter外观。合适的greeter做这个配置。Unity Greeter 默认展示当前选中的用户的背景图片。设置默认的背景图片,停止编辑/usr/share/glib-2.0/schemas/10_unity_greeter_background.gschema开关,使用配置:

[com.canonical.unity-greeter]
draw-user-backgrounds=false
background='/foo/wallpaper.png'

并且运行sudo glib-compile-schemas /usr/share/glib-2.0/schemas/以应用这些设置。

对于LightDM GTK+ greeter,编辑/etc/lightdm/lightdm-gtk-greeter.conf,修改background=/usr/share/lubuntu/wallpapers/lubuntu-default-wallpaper.pngbackground的值改为自己想要的图片。

添加系统钩子

Hook一般译作钩子。

如查你需要在X服务器和用户的会话在启动、停止时进行一些特殊的行为,你可以参考以下配置设置一些命令:

[Seat:*]
display-setup-script=command
display-stopped-script=command
greeter-setup-script=command
session-setup-script=command
session-cleanup-script=command
session-wrapper=command
greeter-wrapper=command

其中greeter-wrapperdisplay-stopped-script配置不被Ubuntu 12.04 LTS版本支持。

display-setup-script

display-setup-script在X服务器启动后、用户会话/greeter程序运行之前运行。如果需要在X服务器中配置任何特殊内容,请设置此选项。它作为root运行。如果该命令返回错误代码,则X服务器将停止。

display-stopped-script

display-stopped-script在X服务器退出后以root身份运行。

greeter-setup-script

greeter-setup-script是在greeter开始前运行的。它作为root运行。如果该命令返回一个错误代码,引导程序将无法启动(这将导致LightDM停止)。

session-setup-script

session-setup-script在用户会话开始之前运行。如果这个命令返回一个错误,会话将不会启动(用户返回到一个greeter界面)。

session-cleanup-script

session-cleanup-script在greeter或者用户会话停止时运行,以root身份运行。

session-wrapper

session-wrapper是为会话运行的命令。此命令作为用户运行,需要执行参数中传递的命令以完成会话的运行。如果需要为用户会话进行特殊设置,请使用此选项。注意,默认值是lightdm-session”`,因此如果需要覆盖该设置,应该链接到该设置。

greeter-wrapper

greeter-wrapper 是一个运行greeter的命令行。它相当于greeter的session-wrapper

桌面进不去的常见解决办法

graphics stack(图形堆栈)中很多事情都可能出错。如果你看不到任何图形或者损坏的图片,下列尝试也许可以帮助你:

  1. 你可以按ctrl+alt+f1得到文本终端
  2. 检查LightDM的日志,位于/var/log/lightdm
  3. 停止LightDM,运行sudo systemctl stop lightdm
  4. 尝试再次启动LightDM:sudo systemctl start lightdm
  5. 如果你有另外一个显示管理器,你可以去启动它,比如运行:sudo systemctl start gdm
  6. 你可以设置默认的显示管理器,运行sudo dpkg-reconfigure lightdm
  7. 检查系统的最新更新日期,特别是视频驱动。
  8. 文件记录这个BUG。如果您不确定原因在哪里(lightdm/unity-greeter/unity/X/kernel),那么针对lightdm的文件和错误将被筛选和重新分配(译者注:意思是多试几次,缩小问题范围)。

报告问题

存档一个BUG可以从终端运行下面的命令行:
ubuntu-bug lightdm
所有合适、合法的信息、日志都会添加到错误报告中。

 类似资料: