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

det*_*tly 99 lightdm unity-greeter

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

小智 115

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


您需要做的是重新配置AccountsService.

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

/var/lib/AccountsService/users/XXX
Run Code Online (Sandbox Code Playgroud)

包含两行:

[User]
SystemAccount=true
Run Code Online (Sandbox Code Playgroud)

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

  • 也适用于 vanilla Ubuntu 20.04。谢谢! (6认同)
  • 适用于 vanilla 14.04 设置 (4认同)
  • 也在 Ubuntu 16.04 上进行了测试。 (3认同)
  • 顺便说一句,有一个标准库 [`crudini`](https://manpages.ubuntu.com/manpages/bionic/man1/crudini.1.html),它允许您在脚本中执行此操作(不那么痛苦,更稳定)比 `sed` 或盲目的 `>>` 附加): `crudini --set /var/lib/AccountsService/users/$_user User SystemAccount "true"` (2认同)

jrg*_*jrg 42

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

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


这是你想要做的:

首先,备份您的配置。

sudo cp /etc/lightdm/users.conf /etc/lightdm/users.conf.bak
Run Code Online (Sandbox Code Playgroud)

然后,您需要编辑您的配置:

sudo nano /etc/lightdm/users.conf
Run Code Online (Sandbox Code Playgroud)

你会看到这样的东西:

sudo cp /etc/lightdm/users.conf /etc/lightdm/users.conf.bak
Run Code Online (Sandbox Code Playgroud)

我们感兴趣的是这里的部​​分:

hidden-users=nobody nobody4 noaccess

要隐藏 username james,只需像这样添加它:

hidden-users=nobody nobody4 noaccess james

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

作为对他人的参考,请参阅

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

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


小智 17

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

例如,要分配小于 1000 的新 uid,(我们使用的是 999)使用此命令

sudo usermod -u 999 user-name
Run Code Online (Sandbox Code Playgroud)

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

  • 这会隐藏用户,但如果您要更改 uid,您可能还想更改 gid,因为它们通常是相同的数字:`sudo groupmod -g999 用户名`。正如 dqvn2002 在他们的回答中提到的,对于 Ubuntu 12.04,你需要一个 &lt; 500 的数字,所以 999 将不起作用。 (3认同)
  • 不要忘记!当您更改用户 ID 时,该用户拥有的任何私有文件将突然变得无法访问。你需要运行(例如)`sudo chown -R user-name:user-name /home/user-name`。 (3认同)

小智 9

因为 Ubuntu 12.04 设置

[UserAccounts]  
minimum-uid=500
Run Code Online (Sandbox Code Playgroud)

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

例子: sudo usermod -u 499 user-name

它和我一起工作!已解决 祝你好运。