我可以在lightdm中设置默认用户吗?


12

我一直在上网本上玩Ubuntu Oneiric(实际上,破损并不是问题);我喜欢新的lightdm登录屏幕,但它有一个小麻烦:除了我自己的用户帐户外,还有另一个供我的女友偶尔使用的帐户,而她的用户帐户始终是关注的帐户(大概是因为它是第一个按字母顺序排列) 。

我知道如何在gdm中解决此问题,但尚未找到lightdm的解决方案。有人知道如何设置它,以便默认情况下突出显示我的帐户吗?

Answers:


5

在/etc/lightdm/lightdm.conf中

向下浏览文件,直到到达:

# greeter-hide-users=false

取消注释,请确保该值为false。


2
我一直觉得/etc/lightdm/lightdm.conf中注释掉的选项和值指示默认值,但事实并非如此。因此,简单地取消注释行可能会产生影响。另外,某些选项似乎在注销/登录时生效,但是此选项似乎需要重新启动才能生效。
PiersyP

共有三个级别,其中配置文件按此顺序读取(即,最后一个覆盖前一个):中的文件/usr/share/lightdm/lightdm.conf.d,中的文件/etc/lightdm.conf.d及其/etc/lightdm.conf本身。默认值可能会更早被覆盖,然后需要在稍后重新设置。
Fiximan

这是一个有用的说明,谢谢。
Lizardx

4

hackerb9的答案为我做到了,但是比起创建脚本,简单地“冻结”配置文件要简单得多。这是做什么的:

  • 打开配置文件进行编辑(请注意,根据您所使用的Ubuntu的风格,其中的文件夹.cache可能被称为其他名称)
    sudo nano /var/lib/lightdm/.cache/lightdm-gtk-greeter/state
  • 编辑以下行以反映默认用户的帐户名
    last-user=[DEFAULT-USER]
  • 也许还可以在文件中添加注释,说明该文件已被锁定,以及
  • 运行以下命令以“冻结”文件,以便lightdm无法更改该文件
    sudo chattr +i /var/lib/lightdm/.cache/lightdm-gtk-greeter/state

现在,当其他用户登录时,lightdm将无法更新此文件,以确保在加载登录屏幕时始终列出您的默认用户。

如果这对您有用,并且您决定赞成,请赞成hackerb9的帖子,这是通过其他方法得出的。


1
非常好,@ b_laoshi。我喜欢您不依赖Shell脚本。我确实建议在状态文件中添加注释,以便将来的系统管理员(或您自己)将知道为什么它是不可变的。我认为这是在单台计算机上的一种很好的解决方案,但我应该指出,对于在实验室环境中尝试它的人来说可能会有不利之处。(1)不应依赖扩展的文件系统属性来持久保存备份。(2)同样,如果您有从网络主机复制的实验室计算机,则fs属性可能会丢失。(3)/ var / lib不能保证例如在升级时保留。
hackerb9

3

编辑文件/etc/lightdm/lightdm.conf(gksu gedit /etc/lightdm/lightdm.conf),并在其上添加如下一行:

default-user=sean_fitzpatrick

谢谢,但是到目前为止我还没有运气-这对您有用吗?我尝试了其他变体,例如default-user = sean(我的登录名),default-user = 1000(我的UID)等,但是到目前为止,没有任何变化。
肖恩·菲茨帕特里克

我在某个地方读过,不记得在哪里。我还没有使用lightdm。我会研究更多。
desgua 2011年

好的,这似乎可以正常工作-使用最新更新,默认情况下会选择正确的用户。不知道这是由于我添加了默认用户行,还是现在它记住了上一次登录。(我想我可以尝试删除默认用户行,看看会发生什么-但至少现在可以了!)
肖恩·菲茨帕特里克

2
作为快速阅读所有使用12.04的用户的提示,此设置不再有效,并且不再在示例conf文件中。我相信从12.04开始,默认值将是最后登录的用户。
mfisch 2012年

3

“默认用户”选项已从lightdm中删除。为什么?没人知道。最初提出此问题已经五年了,但至今仍未解决。现在,Lightdm将谁最后一次登录的状态保存在一个隐藏文件中:

/var/lib/lightdm/.cache/lightdm-gtk-greeter/state

因此,这是一个三步解决方法:

  1. 创建一个/usr/local/bin/lightdm-default-user具有以下内容的shell脚本:

    #!/bin/sh
    
    # LightDM removed the default-user option.
    # The only recourse now is an ugly kludge. 
    
    # Note that if you want to default to the "Guest Session",
    # you need to specify the last user as "*guest".
    
    /bin/echo -e '[greeter]\nlast-user=*guest' > /var/lib/lightdm/.cache/lightdm-gtk-greeter/state
    
  2. 使它可执行: chmod 755 /usr/local/bin/lightdm-default-user

  3. 通过/etc/lightdm/lightdm.conf[SeatDefaults]部分中编辑并添加一行,让lightdm在启动时自动运行脚本:

    [SeatDefaults]
    greeter-setup-script=/usr/local/bin/lightdm-default-user
    

这太丑陋了,但是不幸的是,这是目前最好的解决方案。


我怀疑这样做是出于安全原因(即,用户名被认为是敏感信息)。
Scott Smith,

这正是我所需要的。不过,我采取的方法略有不同。Shell脚本实际上不是必需的。请参阅我的答案以获取“冻结” state文件的解释。
b_laoshi
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.