Как скрыть конкретного пользователя с экрана входа в систему?

85

Как скрыть конкретного пользователя с экрана входа в систему при установке по умолчанию версии 11.10 и выше? (т.е. используя Unity Greeter)?

detly
источник

Ответы:

92

Если ваша система использует AccountsService, вы не можете скрыть пользователя с экрана приветствия, перенастроив lightdmего, потому что он откладывается на AccountsService. Это очень четко указано в комментариях /etc/lightdm/users.conf.


Вместо этого вам нужно перенастроить AccountsService.

Чтобы скрыть пользователя с именем XXX, создайте файл с именем

/var/lib/AccountsService/users/XXX

содержащий две строки:

[User]
SystemAccount=true

Если файл уже существует, обязательно добавьте SystemAccount=trueстроку в [User]раздел.

Марк Каллер
источник
4
работает над настройкой vanilla 14.04
frnhr 15.03.15
3
Проверено работает и на Ubuntu 16.04.
Сопалайо де Арриерес
1
Это работает также в Ubuntu 17.10 с Gnome 3
Schuh
И все еще правильный ответ для Ubuntu 19.04 Disco Dingo.
Aiyion.Prime
1
Это работает на Ubuntu 19.04. Не забудьте использовать XXX в качестве фактического имени пользователя, а не псевдоним. Например, имя пользователя 'postgres' имеет псевдоним 'PostgreSQL'. В этом случае вы должны использовать «postgres» в качестве имени файла.
Хуан Гарсия
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.)

JRG
источник
Больше не работает 14.04, но работает ответ на вопрос askubuntu.com/a/575390/7304 от @ marc-culler ниже.
Лоран
Все еще не исправлено через шесть лет, вздох :(
Bulletmagnet
@ Bulletmagnet хорошо Ubuntu больше не использует lightdm :(
jrg
Что бы там ни было, проблема сохраняется :(
Bulletmagnet
16

Ваш вариант , пока ошибка 857651 не будет исправлена, чтобы создать пользователя с UID <1000

Например, чтобы назначить новый uid менее 1000, (мы используем 999) используйте эту команду

sudo usermod -u 999 user-name

Замените на user-nameфактическое имя пользователя, так же, как anwarи detlyт. Д.

OerHeks
источник
3
Это скрывает пользователя, но если вы изменяете UID вы также можете изменить GID, так как они, как правило , тот же номер: sudo groupmod -g999 user-name. И как dqvn2002 упоминает в своем ответе, для Ubuntu 12.04 вам понадобится число <500, поэтому 999 не будет работать.
Ламбарт
2
И не забывай! Когда вы изменяете идентификатор пользователя, любые личные файлы, принадлежащие этому пользователю, внезапно становятся недоступными. Вам нужно будет бежать (например) sudo chown -R user-name:user-name /home/user-name.
Ламбарт
8

потому что настройка Ubuntu 12.04

[UserAccounts]  
minimum-uid=500

поэтому нам нужно уменьшить uidменее 500

пример: sudo usermod -u 499 user-name

Это работает со мной! Решено Удачи.

dqvn2002
источник
Вы можете захотеть / нужно также изменить идентификатор группы и chownлюбые файлы, принадлежащие пользователю, как я прокомментировал в ответе OerHeks.
Ламбарт
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, просто назначив им идентификатор ниже минимального идентификатора, найденного в:

/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

Он работает на моем ПК (в 2016 году), поэтому я думаю, что ошибка lightDM, о которой Элия Каган упоминал в 2014 году в отношении ответа Джеймса, была устранена.

thebunnyrules
источник