如何从 GDM 登录屏幕隐藏用户?

gru*_*czy 74 gdm

我最近添加了几个新用户,我需要 qmail。现在它们出现在登录屏幕的框中并使其混乱,我必须滚动才能找到我的用户。如何从登录框中隐藏这些用户?

mic*_*gol 83

对于较新的 GDM 3.X,旧答案不起作用,除了这个
The greetersetting custom.confis obsolete,即它不再起作用。如果您想避免更改用户的 uid,一种简单的解决方法是:

  1. 打开终端,然后输入(替换user为您要从登录屏幕隐藏的用户名):

    sudo nano /var/lib/AccountsService/users/user
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将以下内容添加到文件中:

    [User]  
    Language=   
    XSession=gnome  
    SystemAccount=true  
    
    Run Code Online (Sandbox Code Playgroud)
  3. 切换用户或注销以测试是否user不再列出。

  • 这对我有用,但我必须重新启动才能使更改生效。 (3认同)
  • 事实上,这就是我在阅读 [the Arch docs](https://wiki.archlinux.org/index.php/GDM#Hide_user_from_login_list) 后所做的。应该对这个答案进行投票,以便人们更快地看到它并节省一些时间。 (2认同)
  • 将用户设置为系统帐户会产生哪些后果? (2认同)

Ric*_*way 30

编辑文件 /etc/gdm/gdm.schema 找到当前看起来像这样的部分:

  <schema>
    <key>greeter/Exclude</key>
    <signature>s</signature>
    <default>bin,root,daemon,adm,lp,sync,shutdown,halt,mail,news,uucp,operator,nobody,nobody4,noaccess,postgres,pvm,rpm,nfsnobody,pcap</default>
  </schema>
Run Code Online (Sandbox Code Playgroud)

并排除名为 qmail 的用户,例如将 qmail 添加到默认列表中,因此该部分如下所示。

  <schema>
    <key>greeter/Exclude</key>
    <signature>s</signature>
    <default>qmail, bin,root,daemon,adm,lp,sync,shutdown,halt,mail,news,uucp,operator,nobody,nobody4,noaccess,postgres,pvm,rpm,nfsnobody,pcap</default>
  </schema>
Run Code Online (Sandbox Code Playgroud)

这将阻止用户 qmail 出现在 gdm 问候语中。曾经有一个很好的 GUI 工具可以做到这一点,但最近几个版本没有在 Ubuntu 中使用。

另一种选择是将用户的 UID 设置为 1000 以下。这些被认为是 GDM 问候语中排除的系统帐户。

  • 实际上,我认为你不应该修改`/etc/gdm/gdm.schema`。相反,将两行 `[greeter]` `Exclude=nobody,qmail-foo,qmail-bar` 添加到 `/etc/gdm/custom.conf`。(除了 `nobody`,默认列表中的名称无论如何都不会显示,因为它们的 uid &lt;1000。) (29认同)
  • 通常,您应该为此使用 1000 以下的 uid。 (3认同)

Oli*_*Oli 18

Hacky,但您可以修改用户的 id,这样它们就不会显示在列表中:

sudo usermod -u 999 <username>
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为 id 低于 1000 的用户被认为是“系统”用户(即不是人类)。

我知道的唯一另一种方法是完全隐藏列表:

sudo -u gdm gconftool-2 --type bool --set /apps/gdm/simple-greeter/disable_user_list 'true'
Run Code Online (Sandbox Code Playgroud)

  • `usermod -u` 选项很有趣:它会自动更改主目录和邮件池(如果有)上的 uid 以匹配。但是,这可能会中断他们对他们在主目录之外拥有的任何文件的访问。 (6认同)
  • 没有“用户级别”这样的东西,它是用户的 ids 。 (3认同)

bel*_*qua 12

详细说明Gilles对已接受答案的评论,这是我认为当前“最佳实践”(Gnome 安全)的方法。此更改也将反映在 Gnome 的“指示器小程序会话”中。

这种方法是GDM 网站上的文档中建议的一种方法,尽管该站点和 Gilles 都显示了在排除项中添加了“nobody”,但我想确保这实际上是必要的(尽管联机帮助页是什么)或在线文档明确提供)。我已经在几个 10.10 系统上对此进行了测试,以验证可重复性。

我们需要做的就是对/etc/gdm/custom.conf. 大多数其他方法(更改 default.conf、gdm.conf 等)已弃用。

如果您有现有的/etc/gdm/custom.conf,请编辑该文件。否则,复制示例文件:

sudo cp /usr/share/doc/gdm/examples/custom.conf /etc/gdm/custom.conf
Run Code Online (Sandbox Code Playgroud)

在 的 [Greeter] 部分中/etc/gdm/custom.conf,添加:

Exclude=user1,user2,nobody
Run Code Online (Sandbox Code Playgroud)

其中“user1”和“user2”是您不希望在 GDM“面部浏览器”上显示的用户名或密码文件条目(例如 qmail、squid 等)。

注意:在我的 Gnome/GDM (2.30) 版本下,如果您没有在排除条目中列出“nobody”,那么您将出现一个虚假登录用户nobody,而不是 user1 或 user2。

NB#2:不显示 UID 低于 1000 的帐户是一个可配置参数。默认情况下,该MinimalUID值设置为 1000。当且仅当IncludeAll=true保留默认设置且Include指令未更改为非空值时,GDM 迎接程序是否会扫描 passwd 文件以查找 UID 大于 MinimalUID 的条目。然后显示 UID 高于 MinimalUID 且不在排除列表中的用户。

我还没有测试反向设置,即,Include=user1,user2在 custom.conf中设置一个条目是否会按所示工作。它应该覆盖任何IncludeAll设置,并仅显示明确列出的用户。

  • 不再适用于较新版本的 GDM。 (2认同)