如何在登录屏幕上隐藏特定用户?


84

在默认安装11.10及更高版本中,如何在登录屏幕上隐藏特定用户?(即使用Unity Greeter)?

Answers:


91

如果您的系统使用AccountsService则无法通过重新配置在greeter屏幕上隐藏用户,lightdm因为该用户必须遵守AccountsService。在中的评论中非常清楚地说明了这一点/etc/lightdm/users.conf


您需要做的是重新配置AccountsService

要隐藏名为的用户XXX,请创建一个名为的文件

/var/lib/AccountsService/users/XXX

包含两行:

[User]
SystemAccount=true

如果文件已经存在,请确保将SystemAccount=true行添加到该[User]部分。


4
适用于香草14.04设置
frnhr 2015年

3
也测试了在Ubuntu 16.04上的工作。
Sopalajo de Arrierez

1
这也适用于带有Gnome 3的Ubuntu 17.10
Schuh

仍然是Ubuntu 19.04 Disco Dingo的正确答案。
Aiyion.Prime

1
这适用于Ubuntu 19.04。请记住使用XXX作为实际的用户名,而不是别名。例如,“ postgres”用户名具有“ PostgreSQL”别名。在这种情况下,您必须使用“ postgres”作为文件名。
JuanGarcía

40

当前,由于lightdm 中的错误,此方法不起作用。

应用此方法之前,请检查错误状态。


您要执行以下操作:

首先,备份您的配置。

sudo cp /etc/lightdm/users.conf /etc/lightdm/users.conf.bak

然后,您需要编辑配置:

sudo nano /etc/lightdm/users.conf

您会看到以下内容:

#
# User accounts configuration
#
# NOTE: If you have AccountsService installed on your system, then LightDM will
# use this instead and these settings will be ignored
#
# minimum-uid = Minimum UID required to be shown in greeter
# hidden-users = Users that are not shown to the user
# hidden-shells = Shells that indicate a user cannot login
#
[UserAccounts]
minimum-uid=500
hidden-users=nobody nobody4 noaccess
hidden-shells=/bin/false /usr/sbin/nologin

我们感兴趣的部分是:

hidden-users=nobody nobody4 noaccess

要隐藏用户名james,只需将其添加如下:

hidden-users=nobody nobody4 noaccess james

然后,重新启动计算机,它应该消失了。

作为参考,请参阅

参见https://bugs.launchpad.net/ubuntu/+source/accountsservice/+bug/857651

在某些版本的lighdm(Ubuntu 14.04)上,您需要重命名[UserAccounts][UserList](in /etc/lightdm/users.conf),此方法才能起作用。(如果您对为什么有必common/user-list.c:321要这样做感兴趣,请参阅lightdm源。)


不再适用于14.04,但可以通过下面的@ marc-culler 回答askubuntu.com/a/575390/7304
洛朗(Larent)2015年

六年后仍未修复,叹了口气:(
Bulletmagnet

@Bulletmagnet好Ubuntu不再使用lightdm :(
jrg

无论使用什么,问题仍然存在:(
Bulletmagnet

15

错误857651被修复之前,您的选择是创建uid <1000的用户。

例如,要分配小于1000的新uid(我们正在使用999),请使用以下命令

sudo usermod -u 999 user-name

user-name实际的用户名替换,就像anwardetly等等。


3
这会将用户隐藏起来,但是如果您要更改uid,则可能还需要更改gid,因为它们通常是相同的数字:sudo groupmod -g999 user-name。就像dqvn2002在他们的答案中提到的那样,对于Ubuntu 12.04,您需要一个小于500的数字,所以999将不起作用。
Lambart 2014年

2
别忘了!当您更改用户ID时,该用户拥有的所有私人文件将突然变得不可访问。您需要运行(例如)sudo chown -R user-name:user-name /home/user-name
Lambart 2014年

8

因为Ubuntu 12.04设置

[UserAccounts]  
minimum-uid=500

所以我们需要减少uid少于500

例: sudo usermod -u 499 user-name

与我合作!解决了,祝你好运。


chown正如我对OerHeks的回答所评论的那样,您可能还希望/需要更改组ID和用户拥有的任何文件。
Lambart 2014年

4

此方法不适用于Ubuntu 13.10。

要正确隐藏用户登录名,您必须打开LightDM配置:

sudo vim /etc/lightdm/lightdm.conf

并添加以下选项:

greeter-hide-users=true
greeter-show-manual-login=true

然后保存并重新启动。就这样。


2
公认的方法仍无法在14.04上运行,并且显示手动登录在我看来也是最好的选择。在14.04中,将此答案中列出的行添加到/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf ..如果您还想禁用来宾用户,则附加allow-guest = false
Luca Borrione

1

这是詹姆斯回答的变体。您可以在lightDM中隐藏用户,只需为他们分配一个ID,该ID低于在以下代码中找到的最小ID:

/etc/lightdm/users.conf

在我的电脑上是1000

# minimum-uid = Minimum UID required to be shown in greeter
# hidden-users = Users that are not shown to the user
# hidden-shells = Shells that indicate a user cannot login
#
[UserAccounts]
minimum-uid=1000

您可以在终端中更改UID easilly:

sudo usermod -u PutUserNameHere

它可以在我的PC上运行(2016年),所以我想Eliah Kagan在2014年提到的关于James回答的lightDM错误已经解决。

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.