Ubuntu 17.10 / Gnome 3: скрыть пользователей от экрана входа в систему [dублировать]

Команда начинающих Ubuntu - это команда, ориентированная на помощь новым пользователям и пользователям, которые хотят стать более активными в сообществе.

59
задан 14 July 2012 в 18:38

12 ответов

Отредактируйте файл /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>

И чтобы исключить пользователя, называемого 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>

Это остановит появление qmail пользователя в gdm greeter. Раньше был хороший инструмент GUI для этого, но он не был в Ubuntu для последних нескольких выпусков.

Другой альтернативой является установка UID пользователя до 1000. Это считается быть системными учетными записями, которые также исключены в GDM greeter.

30
ответ дан 17 July 2018 в 21:08

Отредактируйте файл /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>

И чтобы исключить пользователя, называемого 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>

Это остановит появление qmail пользователя в gdm greeter. Раньше был хороший инструмент GUI для этого, но он не был в Ubuntu для последних нескольких выпусков.

Другой альтернативой является установка UID пользователя до 1000. Это считается быть системными учетными записями, которые также исключены в GDM greeter.

30
ответ дан 23 July 2018 в 21:48

В эти выходные я написал сценарий (gdm-greeter). Он хорошо работает на CentOS 6.2, интересно, будет ли это полезно для Ubuntu?

#!/bin/bash # # $LastChangedDate: 2012-02-17 09:13:10 +0100 (Fri, 17 Feb 2012) $ # $Revision: 1627 $ # # Get the default exlude list DefaultExclude=`sed 's,</schema>,#,' /etc/gdm/gdm.schemas | \ tr '\n#' '#\n' | \ grep '>greeter/Exclude<' | tr '\n#' '#\n' | \ grep '<default>' | \ sed -e 's,.*<default>,,' -e 's,</default>.*,,'` # Get the Exclude list from the config eval `grep '^Exclude=' /etc/gdm/custom.conf 2> /dev/null` # If empty copy the default if [ "$Exclude" = "" ] then Exclude=$DefaultExclude fi # Collect all user accounts with a shell Users="`grep 'sh$' /etc/passwd | awk -F: '{print $1}' | \ sort | tr '\n' ',' | sed 's/,$//'`" #------------------------------------------------------------------------------ # The functions area PlaceExclude() # $1 new exclude string { # Create a .bak file if [ ! -f /etc/gdm/custom.conf.bak ] then cp /etc/gdm/custom.conf /etc/gdm/custom.conf.bak fi # Create a tmp file without the Exclude string cat /etc/gdm/custom.conf | tr '[\n' '\n[' | \ sed -e 's/^\(greeter[]].*\)[[]Exclude=[^[]*\([[].*\)/\1\2/' | \ tr '[\n' '\n[' > /tmp/custom.conf.$$ # If the tmp file is there and we have non default Exclude if [ -f /tmp/custom.conf.$$ ] then if [ "$1" = "$DefaultExclude" ] then cat /tmp/custom.conf.$$ > /etc/gdm/custom.conf else # Place the new Exclude string cat /tmp/custom.conf.$$ | tr '[\n' '\n[' | \ sed -e "s/^greeter[]][[][[]/greeter][Exclude=$1[[/" | \ tr '[\n' '\n[' > /etc/gdm/custom.conf fi fi rm -f cat /tmp/custom.conf.$$ } #------------------------------------------------------------------------------ #------------------------------------------------------------------------------ # Command area add() # Cmd (Add a user to the greeter {<user> { UserFilter=`echo $Users | sed 's/,/|/g'` if ! echo $1 | egrep -w $UserFilter &> /dev/null then echo "Error: user $1 unknown" echo return 1 fi # Only work with the users not in the default exclude list Filter=`echo $DefaultExclude | sed 's/,/|/g'` Hidden=`echo $Exclude | tr ',' '\n' | egrep -vw "$Filter" | tr '\n' ','` # Check if we need to do something if ! echo $Hidden | tr ',' '\n' | grep -w $1 &> /dev/null then echo echo "User $1 is not hidden" echo else # Remove the user from the exclude PlaceExclude "`echo $Exclude | tr ',' '\n' | grep -vw $1 | \ tr '\n' ',' | sed 's/,$//'`" # Tell the action echo "User $1 added to the greeter" echo fi } del() # Cmd (Delete/hide a user from the greeter {<user> { UserFilter=`echo $Users | sed 's/,/|/g'` if ! echo $1 | egrep -w $UserFilter &> /dev/null then echo "Error: user $1 unknown" echo return 1 fi # Check if we need to do something if echo $Exclude | tr ',' '\n' | grep -w $1 &> /dev/null then echo echo "User $1 is already excluded from the greeter" echo else # Exclude the user PlaceExclude "$1,$Exclude" # Tell the action echo "User $1 hidden from the greeter" echo fi } hide() # CMD (Delete/hide a user from the greeter {<user> { del $1 } hidden() # Cmd (List the hidden users { { Filter=`echo $DefaultExclude | sed 's/,/|/g'` Hidden=`echo $Exclude | tr ',' '\n' | egrep -vw "$Filter" | tr '\n' ','` if [ ${#Hidden} -eq 0 ] then echo "No hidden users" echo else echo echo "Users hidden from the greeter:" echo echo $Hidden | tr ',' '\n' | sed 's/^/ /' fi } users() # Cmd (List the users in the greeter { { Filter=`echo $Exclude | sed 's/,/|/g'` Greeters=`echo $Users | tr ',' '\n' | egrep -vw "$Filter" | tr '\n' ','` if [ ${#Greeters} -eq 0 ] then echo "No users in the greeter" echo else echo echo "Users in the greeter:" echo echo $Greeters | tr ',' '\n' | sed 's/^/ /' fi } list() # CMD (List the users in the greeter { { users } #------------------------------------------------------------------------------ #------------------------------------------------------------------------------ # Framework area help() # Cmd (Command help {[command] { if [ "$1" = "" ] then CMD=help else CMD=$1 fi if ! grep \^${CMD}*\(\).*#.*Cmd $0 > /dev/null 2>&1 then ( echo echo "Error: unknown cmd" echo ) >&2 else ( echo echo "Usage: `basename $0` $CMD `grep \^${CMD}*\(\).*#.*Cmd $0 | \ sed 's/.* {//g'`" echo ) >&2 fi } # # Main # if [ "$1" != "" ] && grep -i $1\(\).*#.*Cmd $0 > /dev/null 2>&1 then $* else echo echo "Usage: `basename $0` command [parm1] [parm2] [..]" echo echo " Available Commands:" echo grep \^[0-9a-z_A-Z]*\(\).*#.*Cmd $0 | \ awk -F\( '{printf "%-16s %s\n",$1,$3}' | sed 's/ {.*//g' | sort echo fi
2
ответ дан 17 July 2018 в 21:08

Для новых GDM 3.X старые ответы не работают, за исключением этого. Параметр greeter в custom.conf устарел, то есть он больше не будет работать. Одним из простых способов обхода проблемы, если вы хотите избежать изменения uid пользователя:

Откройте терминал и введите (замените user на имя пользователя, которое вы хотите скрыть от экрана входа в систему): sudo nano /var/lib/AccountsService/users/user Добавить в файл: [User] Language= XSession=gnome SystemAccount=true Выключить пользователя или выйти из системы, чтобы проверить, нет ли user.
41
ответ дан 17 July 2018 в 21:08

Разрабатывая комментарий Жиля к принятому ответу, вот что, я считаю, является нынешней «лучшей практикой» (Gnome-safe) для этого. Это изменение также будет отражено в сессии апплета индикатора Gnome.

Этот метод является тем, который предлагается в документах на веб-сайте GDM, и хотя оба сайта и Жиль показывают добавление «никто», к исключению, я хотел убедиться, что было ясно, что это действительно необходимо (несмотря на то, что явно предлагают справочники или онлайн-документы). Я проверил это на нескольких 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

В секции [Greeter] /etc/gdm/custom.conf добавьте:

Exclude=user1,user2,nobody

Если «user1» и «user2» имена пользователей или файлы passwd (например, qmail, squid и т. д.), которые вы не хотите показывать в браузере лица GDM.

Примечание. В моей версии Gnome / GDM (2.30), если у вас нет «никто», указанного в записи «Исключить», тогда у вас появится пользователь фиктивного входа nobody вместо user1 или user2.

Примечание : Неотображение учетных записей с UID ниже 1000 является настраиваемым параметром. По умолчанию для параметра MinimalUID установлено значение 1000. Если и только если параметр по умолчанию IncludeAll=true оставлен на месте, а директива Include не изменена на непустое значение, выполняет ли GDM greeter проверку passwd файл для записей с UID больше, чем MinimalUID. Затем отображаются пользователи с минимальным идентификатором UID, которые не находятся в списке Exclude.

Я не тестировал, будет ли изменен параметр обратной связи, а именно, что установка записи Include=user1,user2 в custom.conf будет работать как представленная , Он должен переопределить любую настройку IncludeAll и отображать только явные списки пользователей.

11
ответ дан 17 July 2018 в 21:08

Я должен согласиться с тем, что наиболее приемлемый ответ здесь близок, но не мертв.

Я просто лизал эту проблему сам, и ответ для меня заключался в том, чтобы изменить следующую gdm.schema entry:

(original) <schema> <key>greeter/IncludeAll</key> <signature>b</signature> <default>true</default> </schema> (after my edit) <schema> <key>greeter/IncludeAll</key> <signature>b</signature> <default>false</default> </schema>

Эффект от этого заключается в том, что вся информация о пользователях отключена, что, если я правильно интерпретирую исходный вопрос, на самом деле намеревается сделать OP (gruszczy). Это исключает необходимость создания длинной строки исключений, так как все идентификаторы пользователя, независимо от номера UID, исключаются независимо от того, будет ли изменен этот параметр. Я лично применил этот параметр к 3 отдельным серверам CentOS 6.2 на работе, которые иногда доступны через XDMCP (используя xrdp> vnc-server> xinetd> gdm> gnome) через RDP, что позволяет некоторым из наших менее опытных администраторов Linux работать над этими системы с минимальным обучением.

Все это говорит, хотя я согласен с тем, что неопытный системный администратор должен учиться с самого начала, чтобы работать с личной учетной записью (возможно, с доступом к суду), а не с правами root, если у вас есть опыт работы с этой учетной записью должным образом, нет никакого вреда в этом. Просто убедитесь, что вы знаете, что делаете перед вами. В случае с моими другими системными администраторами я добавил CentrifyDC для поддержки Active Directory ко всем этим системам и настроил системы, чтобы AD-UserID могли использоваться для сеансов рабочего стола при сохранении прав пользователя AD Security Group. Но лично, поскольку я разработал все эти серверы и использовал Linux уже более 15 лет, я не думаю, что использовать root для ускорения работы. Фактически, я стараюсь включить root в системах, где он был отключен, чтобы я мог использовать эту учетную запись и прервать погоню за тем, чтобы все было сделано. Главное, действительно, это просто создать привычку создавать резервную копию любого файла, прежде чем изменять его. Это будет безопасно защищать от большинства неудач и позволит вам восстановить систему, если вы выполните редактирование, которое в противном случае стало бы недоступным для системы (просто загрузитесь на Live CD и исправьте то, что нужно исправить).

ИМХО, я считаю, что мантра «никогда не входите в систему как корень» действительно существует, чтобы защитить системных администраторов n00bie от самих себя. Но если вы достигнете уровня компетентности с Linux до такой степени, что вы сможете инженеризовать систему из любой ОС Linux за очень короткий промежуток времени, и она работает каждый раз, тогда нет причин жить по принципу «никогда не входить в систему как root», мантру, потому что к этому моменту вы готовы справиться с ответственностью, которая приходит вместе с использованием этой учетной записи. Это особенно справедливо в средах, которые используют поддержку CentrifyDC для AD, потому что «root» становится локальной учетной записью sysadmin и обычно (обычно) включается автоматически. Поэтому мне лучше всего перейти к преследованию и установить настройку пароля учетной записи root как одну из первых задач, которые я выполняю при любом развертывании в настоящее время. Конечно, я мог бы сделать весь вход в качестве своего собственного идентификатора, а затем sudo up, но я лично не чувствую необходимости делать что-то в этом роде. Ваш собственный пробег может меняться ...

2
ответ дан 17 July 2018 в 21:08

Измените оболочку входа пользователя на пустую строку в / etc / passwd

Пример: change:

# Change example:x:2001:2001:Example User,,,:/home/example:/bin/bash # To example:x:2001:2001:Example User,,,:/home/example:

Я перезапустил свой диспетчер дисплеев и заметил, что это вступает в силу.

sudo service lightdm restart # (or gdm, mdm, ...)

Мне потребовалось несколько недель, чтобы определить это как причину, по которой пользователи были скрыты в менеджере входа в диспетчер экрана. Очевидно, что / var / lib / AccountService / users игнорируется MDM и, предположительно, GDM. Я не зашел так далеко, чтобы добавить Exclude=user1,user2 или Include=user3 в [greeter] в /etc/mdm/mdm.conf или создать /etc/mdm/custom.conf, так как еще один скрыть пользователей, добавленных через useradd, просто отлично, в то время как пользователи, добавленные с помощью adduser, были показаны. Установка оболочки входа в / bin / false запрещает все входные данные для этого пользователя, которые я по-прежнему желаю su. Но это также скрывает пользователя на экране входа в систему, если вы хотите, чтобы этот пользователь был недоступен.

0
ответ дан 17 July 2018 в 21:08

В эти выходные я написал сценарий (gdm-greeter). Он хорошо работает на CentOS 6.2, интересно, будет ли это полезно для Ubuntu?

#!/bin/bash # # $LastChangedDate: 2012-02-17 09:13:10 +0100 (Fri, 17 Feb 2012) $ # $Revision: 1627 $ # # Get the default exlude list DefaultExclude=`sed 's,</schema>,#,' /etc/gdm/gdm.schemas | \ tr '\n#' '#\n' | \ grep '>greeter/Exclude<' | tr '\n#' '#\n' | \ grep '<default>' | \ sed -e 's,.*<default>,,' -e 's,</default>.*,,'` # Get the Exclude list from the config eval `grep '^Exclude=' /etc/gdm/custom.conf 2> /dev/null` # If empty copy the default if [ "$Exclude" = "" ] then Exclude=$DefaultExclude fi # Collect all user accounts with a shell Users="`grep 'sh$' /etc/passwd | awk -F: '{print $1}' | \ sort | tr '\n' ',' | sed 's/,$//'`" #------------------------------------------------------------------------------ # The functions area PlaceExclude() # $1 new exclude string { # Create a .bak file if [ ! -f /etc/gdm/custom.conf.bak ] then cp /etc/gdm/custom.conf /etc/gdm/custom.conf.bak fi # Create a tmp file without the Exclude string cat /etc/gdm/custom.conf | tr '[\n' '\n[' | \ sed -e 's/^\(greeter[]].*\)[[]Exclude=[^[]*\([[].*\)/\1\2/' | \ tr '[\n' '\n[' > /tmp/custom.conf.$$ # If the tmp file is there and we have non default Exclude if [ -f /tmp/custom.conf.$$ ] then if [ "$1" = "$DefaultExclude" ] then cat /tmp/custom.conf.$$ > /etc/gdm/custom.conf else # Place the new Exclude string cat /tmp/custom.conf.$$ | tr '[\n' '\n[' | \ sed -e "s/^greeter[]][[][[]/greeter][Exclude=$1[[/" | \ tr '[\n' '\n[' > /etc/gdm/custom.conf fi fi rm -f cat /tmp/custom.conf.$$ } #------------------------------------------------------------------------------ #------------------------------------------------------------------------------ # Command area add() # Cmd (Add a user to the greeter {<user> { UserFilter=`echo $Users | sed 's/,/|/g'` if ! echo $1 | egrep -w $UserFilter &> /dev/null then echo "Error: user $1 unknown" echo return 1 fi # Only work with the users not in the default exclude list Filter=`echo $DefaultExclude | sed 's/,/|/g'` Hidden=`echo $Exclude | tr ',' '\n' | egrep -vw "$Filter" | tr '\n' ','` # Check if we need to do something if ! echo $Hidden | tr ',' '\n' | grep -w $1 &> /dev/null then echo echo "User $1 is not hidden" echo else # Remove the user from the exclude PlaceExclude "`echo $Exclude | tr ',' '\n' | grep -vw $1 | \ tr '\n' ',' | sed 's/,$//'`" # Tell the action echo "User $1 added to the greeter" echo fi } del() # Cmd (Delete/hide a user from the greeter {<user> { UserFilter=`echo $Users | sed 's/,/|/g'` if ! echo $1 | egrep -w $UserFilter &> /dev/null then echo "Error: user $1 unknown" echo return 1 fi # Check if we need to do something if echo $Exclude | tr ',' '\n' | grep -w $1 &> /dev/null then echo echo "User $1 is already excluded from the greeter" echo else # Exclude the user PlaceExclude "$1,$Exclude" # Tell the action echo "User $1 hidden from the greeter" echo fi } hide() # CMD (Delete/hide a user from the greeter {<user> { del $1 } hidden() # Cmd (List the hidden users { { Filter=`echo $DefaultExclude | sed 's/,/|/g'` Hidden=`echo $Exclude | tr ',' '\n' | egrep -vw "$Filter" | tr '\n' ','` if [ ${#Hidden} -eq 0 ] then echo "No hidden users" echo else echo echo "Users hidden from the greeter:" echo echo $Hidden | tr ',' '\n' | sed 's/^/ /' fi } users() # Cmd (List the users in the greeter { { Filter=`echo $Exclude | sed 's/,/|/g'` Greeters=`echo $Users | tr ',' '\n' | egrep -vw "$Filter" | tr '\n' ','` if [ ${#Greeters} -eq 0 ] then echo "No users in the greeter" echo else echo echo "Users in the greeter:" echo echo $Greeters | tr ',' '\n' | sed 's/^/ /' fi } list() # CMD (List the users in the greeter { { users } #------------------------------------------------------------------------------ #------------------------------------------------------------------------------ # Framework area help() # Cmd (Command help {[command] { if [ "$1" = "" ] then CMD=help else CMD=$1 fi if ! grep \^${CMD}*\(\).*#.*Cmd $0 > /dev/null 2>&1 then ( echo echo "Error: unknown cmd" echo ) >&2 else ( echo echo "Usage: `basename $0` $CMD `grep \^${CMD}*\(\).*#.*Cmd $0 | \ sed 's/.* {//g'`" echo ) >&2 fi } # # Main # if [ "$1" != "" ] && grep -i $1\(\).*#.*Cmd $0 > /dev/null 2>&1 then $* else echo echo "Usage: `basename $0` command [parm1] [parm2] [..]" echo echo " Available Commands:" echo grep \^[0-9a-z_A-Z]*\(\).*#.*Cmd $0 | \ awk -F\( '{printf "%-16s %s\n",$1,$3}' | sed 's/ {.*//g' | sort echo fi
2
ответ дан 23 July 2018 в 21:48
  • 1
    Нет такой вещи, как «уровень пользователя», это идентификаторы пользователя. – João Pinto 17 August 2010 в 19:14
  • 2
    Эта опция usermod -u интересна: она автоматически изменяет uid в домашнем каталоге и почтовый спутник (если есть), чтобы соответствовать. Однако он может нарушить их доступ к любым файлам, которые они хранят вне своего домашнего каталога. – poolie 16 January 2011 в 20:44
  • 3
    Чтобы скрыть список полностью, вы также можете запустить gdmsetup и использовать флажок. – belacqua 18 January 2011 в 09:47

Для новых GDM 3.X старые ответы не работают, за исключением этого. Параметр greeter в custom.conf устарел, то есть он больше не будет работать. Одним из простых способов обхода проблемы, если вы хотите избежать изменения uid пользователя:

Откройте терминал и введите (замените user на имя пользователя, которое вы хотите скрыть от экрана входа в систему): sudo nano /var/lib/AccountsService/users/user Добавить в файл: [User] Language= XSession=gnome SystemAccount=true Выключить пользователя или выйти из системы, чтобы проверить, нет ли user.
42
ответ дан 23 July 2018 в 21:48
  • 1
    В самом деле, это то, что я сделал после чтения Arch docs . Этот ответ должен быть одобрен, чтобы люди увидели его раньше и сэкономили некоторое время. – Stefan van den Akker 12 July 2015 в 12:37
  • 2
    представляется скорее подходящим способом, чем манипулированием UID – xuma202 13 January 2016 в 20:03
  • 3
    пожалуйста, укажите, из какой версии gdm этот ответ работает – edward torvalds 3 February 2016 в 19:00
  • 4
    Фантастика! Это помогает решить проблему пользователей с uids менее 1000, которые скрыты на экране входа в систему. – biocyberman 10 March 2016 в 02:37
  • 5
    Каковы последствия создания учетной записи системы? – Jistanidiot 8 March 2017 в 22:28

Разрабатывая комментарий Жиля к принятому ответу, вот что, я считаю, является нынешней «лучшей практикой» (Gnome-safe) для этого. Это изменение также будет отражено в сессии апплета индикатора Gnome.

Этот метод является тем, который предлагается в документах на веб-сайте GDM, и хотя оба сайта и Жиль показывают добавление «никто», к исключению, я хотел убедиться, что было ясно, что это действительно необходимо (несмотря на то, что явно предлагают справочники или онлайн-документы). Я проверил это на нескольких 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

В секции [Greeter] /etc/gdm/custom.conf добавьте:

Exclude=user1,user2,nobody

Если «user1» и «user2» имена пользователей или файлы passwd (например, qmail, squid и т. д.), которые вы не хотите показывать в браузере лица GDM.

Примечание. В моей версии Gnome / GDM (2.30), если у вас нет «никто», указанного в записи «Исключить», тогда у вас появится пользователь фиктивного входа nobody вместо user1 или user2.

Примечание : Неотображение учетных записей с UID ниже 1000 является настраиваемым параметром. По умолчанию для параметра MinimalUID установлено значение 1000. Если и только если параметр по умолчанию IncludeAll=true оставлен на месте, а директива Include не изменена на непустое значение, выполняет ли GDM greeter проверку passwd файл для записей с UID больше, чем MinimalUID. Затем отображаются пользователи с минимальным идентификатором UID, которые не находятся в списке Exclude.

Я не тестировал, будет ли изменен параметр обратной связи, а именно, что установка записи Include=user1,user2 в custom.conf будет работать как представленная , Он должен переопределить любую настройку IncludeAll и отображать только явные списки пользователей.

11
ответ дан 23 July 2018 в 21:48
  • 1
    +1 для ссылки на сайт GDM, и потому, что это сработало для меня. – Aaron 13 February 2012 в 22:00
  • 2
    Больше не работает в более новых версиях GDM. – Stefan van den Akker 12 July 2015 в 12:40

Я должен согласиться с тем, что наиболее приемлемый ответ здесь близок, но не мертв.

Я просто лизал эту проблему сам, и ответ для меня заключался в том, чтобы изменить следующую gdm.schema entry:

(original) <schema> <key>greeter/IncludeAll</key> <signature>b</signature> <default>true</default> </schema> (after my edit) <schema> <key>greeter/IncludeAll</key> <signature>b</signature> <default>false</default> </schema>

Эффект от этого заключается в том, что вся информация о пользователях отключена, что, если я правильно интерпретирую исходный вопрос, на самом деле намеревается сделать OP (gruszczy). Это исключает необходимость создания длинной строки исключений, так как все идентификаторы пользователя, независимо от номера UID, исключаются независимо от того, будет ли изменен этот параметр. Я лично применил этот параметр к 3 отдельным серверам CentOS 6.2 на работе, которые иногда доступны через XDMCP (используя xrdp> vnc-server> xinetd> gdm> gnome) через RDP, что позволяет некоторым из наших менее опытных администраторов Linux работать над этими системы с минимальным обучением.

Все это говорит, хотя я согласен с тем, что неопытный системный администратор должен учиться с самого начала, чтобы работать с личной учетной записью (возможно, с доступом к суду), а не с правами root, если у вас есть опыт работы с этой учетной записью должным образом, нет никакого вреда в этом. Просто убедитесь, что вы знаете, что делаете перед вами. В случае с моими другими системными администраторами я добавил CentrifyDC для поддержки Active Directory ко всем этим системам и настроил системы, чтобы AD-UserID могли использоваться для сеансов рабочего стола при сохранении прав пользователя AD Security Group. Но лично, поскольку я разработал все эти серверы и использовал Linux уже более 15 лет, я не думаю, что использовать root для ускорения работы. Фактически, я стараюсь включить root в системах, где он был отключен, чтобы я мог использовать эту учетную запись и прервать погоню за тем, чтобы все было сделано. Главное, действительно, это просто создать привычку создавать резервную копию любого файла, прежде чем изменять его. Это будет безопасно защищать от большинства неудач и позволит вам восстановить систему, если вы выполните редактирование, которое в противном случае стало бы недоступным для системы (просто загрузитесь на Live CD и исправьте то, что нужно исправить).

ИМХО, я считаю, что мантра «никогда не входите в систему как корень» действительно существует, чтобы защитить системных администраторов n00bie от самих себя. Но если вы достигнете уровня компетентности с Linux до такой степени, что вы сможете инженеризовать систему из любой ОС Linux за очень короткое время, и она работает каждый раз, тогда нет причин жить по принципу «никогда не входить в систему как root», мантру, потому что к этому моменту вы готовы справиться с ответственностью, которая приходит вместе с использованием этой учетной записи. Это особенно справедливо в средах, которые используют поддержку CentrifyDC для AD, потому что «root» становится локальной учетной записью sysadmin и обычно (обычно) включается автоматически. Поэтому мне лучше всего перейти к преследованию и установить настройку пароля учетной записи root как одну из первых задач, которые я выполняю при любом развертывании в настоящее время. Конечно, я мог бы сделать весь вход в качестве своего собственного идентификатора, а затем sudo up, но я лично не чувствую необходимости делать что-то в этом роде. Ваш собственный пробег может меняться ...

2
ответ дан 23 July 2018 в 21:48

Измените оболочку входа пользователя на пустую строку в / etc / passwd

Пример: change:

# Change example:x:2001:2001:Example User,,,:/home/example:/bin/bash # To example:x:2001:2001:Example User,,,:/home/example:

Я перезапустил свой диспетчер дисплеев и заметил, что это вступает в силу.

sudo service lightdm restart # (or gdm, mdm, ...)

Мне потребовалось несколько недель, чтобы определить это как причину, по которой пользователи были скрыты в менеджере входа в диспетчер экрана. Очевидно, что / var / lib / AccountService / users игнорируется MDM и, предположительно, GDM. Я не зашел так далеко, чтобы добавить Exclude=user1,user2 или Include=user3 в [greeter] в /etc/mdm/mdm.conf или создать /etc/mdm/custom.conf, так как еще один скрыть пользователей, добавленных через useradd, просто отлично, в то время как пользователи, добавленные с помощью adduser, были показаны. Установка оболочки входа в / bin / false запрещает все входные данные для этого пользователя, которые я по-прежнему желаю su. Но это также скрывает пользователя на экране входа в систему, если вы хотите, чтобы этот пользователь был недоступен.

0
ответ дан 23 July 2018 в 21:48

Другие вопросы по тегам:

Похожие вопросы: