Когда я создаю двух пользователей с одинаковыми UID и GUID, но разными домашними каталогами, моя 17.10 Ubuntu не загружается, почему?

Я хочу иметь возможность войти в систему с другими настройками, но при этом оставаться одним и тем же «пользователем». Итак, я добавил второго пользователя с тем же UID / GUID, но другим домашним каталогом, и теперь при загрузке Ubuntu система просто зависает. Если я удаляю второго пользователя из файлов passwd и shadow, система загружается просто отлично.

3
задан 2 December 2017 в 08:55

1 ответ

Обычно плохая идея редактировать файл /etc/passwd и /etc/shadow вручную. Для этого я рекомендую использовать системные инструменты. Кроме того, хотя пользователь может использовать один и тот же GUID с другим пользователем, UID должен быть уникальным для каждого пользователя. Таким образом, загрузка, скорее всего, приведет к отказу Linux или от запуска необходимых приложений и / или к отказу приложений, ожидающих уникальности UID.

Лучшим подходом для совместного использования каталога двумя пользователями является использование управления группами для этого. См. Документацию по управлению пользователями или просмотрите . Спросите Ubuntu о возможных руководствах:


Однако вы можете создать пользователя, просто выполнив следующую команду:

sudo useradd -U -m -G <additional groups here> <user-name>

Это добавит пользователя в вашу систему, который будет работать. Объяснение вышеупомянутой строки из man 8 useradd (чрезвычайно сокращено до самых обычных опций, для полного обзора смотрите страницу руководства):

ОПЦИИ

   The options which apply to the useradd command are:

   -c, --comment COMMENT
       Any text string. It is generally a short description of the login,
       and is currently used as the field for the user's full name.

   -g, --gid GROUP
       The group name or number of the user's initial login group. The
       group name must exist. A group number must refer to an already
       existing group.

       If not specified, the behavior of useradd will depend on the
       USERGROUPS_ENAB variable in /etc/login.defs. If this variable is
       set to yes (or -U/--user-group is specified on the command line), a
       group will be created for the user, with the same name as her
       loginname. If the variable is set to no (or -N/--no-user-group is
       specified on the command line), useradd will set the primary group
       of the new user to the value specified by the GROUP variable in
       /etc/default/useradd, or 100 by default.

   -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
       A list of supplementary groups which the user is also a member of.
       Each group is separated from the next by a comma, with no
       intervening whitespace. The groups are subject to the same
       restrictions as the group given with the -g option. The default is
       for the user to belong only to the initial group.

   -k, --skel SKEL_DIR
       The skeleton directory, which contains files and directories to be
       copied in the user's home directory, when the home directory is
       created by useradd.

       This option is only valid if the -m (or --create-home) option is
       specified.

       If this option is not set, the skeleton directory is defined by the
       SKEL variable in /etc/default/useradd or, by default, /etc/skel.

       If possible, the ACLs and extended attributes are copied.

   -m, --create-home
       Create the user's home directory if it does not exist. The files
       and directories contained in the skeleton directory (which can be
       defined with the -k option) will be copied to the home directory.

       By default, if this option is not specified and CREATE_HOME is not
       enabled, no home directories are created.

   -M
       Do no create the user's home directory, even if the system wide
       setting from /etc/login.defs (CREATE_HOME) is set to yes.

   -s, --shell SHELL
       The name of the user's login shell. The default is to leave this
       field blank, which causes the system to select the default login
       shell specified by the SHELL variable in /etc/default/useradd, or
       an empty string by default.

   -U, --user-group
       Create a group with the same name as the user, and add the user to
       this group.

       The default behavior (if the -g, -N, and -U options are not
       specified) is defined by the USERGROUPS_ENAB variable in
       /etc/login.defs.

Таким образом, -U создаст группу пользователей, похожую на имя пользователя, имеющее GUID, совпадающий с UID пользователя. -m создаст домашний каталог пользователей в /home/<user-name>, а -G позволяет вам указать дополнительные группы, к которым должен принадлежать этот пользователь. Вы можете добавить группы позже тоже. Группы, которые Ubuntu добавляет к основному пользователю, это adm, cdrom, sudo, dip, plugdev, lpadmin и sambashare. Чтобы добавить группы позже, вы можете использовать следующую команду:

sudo usermod -aG <group-or groups> <user-name>

Наконец, у вашего пользователя должен быть пароль, который вы можете установить с помощью:

sudo passwd <username>

На этом процесс создания пользователя завершается в терминал.

Существует также комбинированная команда под названием adduser, которая автоматизирует некоторые из процессов, которые вы видели выше, для ее использования смотрите man 8 adduser .

3
ответ дан 2 December 2017 в 08:55

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

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