Домашний каталог не создается

Я пытаюсь понять системное администрирование в Ubuntu. Итак, в качестве примера, я создаю фиктивного пользователя, используя

sudo useradd -d /home/linda linda

и passwd для создания пароля. Я проверяю, что запись была сделана с использованием cat /etc/passwd

linda:x:1004:1004::/home/linda:/bin/sh

Однако, когда я su - linda, я получаю

No directory, logging in with HOME=/

и действительно, нет домашний каталог был создан. Что мне не хватает?

Спасибо.

80
задан 10 April 2015 в 19:06

11 ответов

man useradd говорится:

useradd is a low level utility for adding users. On Debian,
administrators should usually use adduser(8) instead.

Обратите внимание на low level utility

Чтобы добавить пользователя, используйте вместо него adduser. Это утилита более высокого уровня.


Кроме того, глядя на опцию -d:

   -d, --home HOME_DIR
       The new user will be created using HOME_DIR as the value for the
       user's login directory. The default is to append the LOGIN name to
       BASE_DIR and use that as the login directory name. The directory
       HOME_DIR does not have to exist but will not be created if it is
       missing.

The directory will not be created if it is missing.

Как правило, держитесь подальше от useradd, вместо этого используйте adduser.

0
ответ дан 10 April 2015 в 19:06

Вы можете исправить это, просто создав домашний каталог.

mkdir /home/linda
chown linda:linda /home/linda

попробуйте войти снова, и это должно сработать.

0
ответ дан 10 April 2015 в 19:06
  • 1
    @Ivaylo нет, это не имеет никакого отношения к sudo. Если cpupower doesn' t работа, попробуйте cpufreq-utils вместо этого. – mikewhatever 8 May 2015 в 21:40

В соответствии с man useradd, опция -d /home/linda не будет создавать каталог /home/linda, если он отсутствует. Итак, вы должны создать его вручную. Для этого выполните в терминале следующие команды:

sudo -i                            #to get root privileges
mkdir /home/linda                  #to create the directory /home/linda
cp -rT /etc/skel /home/linda         #to populate /home/linda with default files and folders
chown -R linda:linda /home/linda   #to change the owner of /home/linda to user linda

См. Также: Как создать домашнюю папку пользователя после создания учетной записи?

0
ответ дан 10 April 2015 в 19:06

Посмотрите на /etc/defaults/useradd, если хотите изменить значения по умолчанию. Используйте:

useradd -m -d /home/joe -s /bin/bash.

0
ответ дан 10 April 2015 в 19:06
  • 1
    Те все приводят к ошибкам. Я добавил получающиеся ошибки к своему вопросу. – Joe Morano 8 May 2015 в 19:36

Если /home/linda нет до того, как вы добавите Линду как пользователя, вам также нужно будет добавить --create-home.

sudo useradd --create-home linda
0
ответ дан 10 April 2015 в 19:06

Добавьте приведенную ниже запись в /etc/login.defs и сохраните:

CREATE_HOME yes

Теперь попробуйте создать учетные записи пользователей. Это создаст домашний каталог.

0
ответ дан 10 April 2015 в 19:06

Вы также можете изменить /etc/pam.d/common-session так, чтобы домашний каталог пользователя создавался при первом входе в систему. Добавьте следующую строку в этот файл.

...
session required pam_mkhomedir.so

Это особенно полезно, если ваша система находится в сети, где пользователи управляются извне вашей машины, например, LDAP.

0
ответ дан 10 April 2015 в 19:06

Используйте -m вместо -d, поэтому каталог будет создан для вас:

sudo useradd -m linda

Кроме того, если linda обычный пользователь, вы можете хотите, чтобы она использовала /bin/bash по умолчанию shell:

sudo useradd -m linda -s /bin/bash

0
ответ дан 10 April 2015 в 19:06

Используйте adduser.

DESCRIPTION

 adduser  and  addgroup  add users and groups to the system according to
   command    line    options    and    configuration    information    in
   /etc/adduser.conf.   They  are  friendlier  front ends to the low level
   tools like useradd, groupadd and usermod programs, by default  choosing
   Debian  policy conformant UID and GID values, creating a home directory
   with skeletal configuration, running a custom script,  and  other  fea‐
   tures.  adduser and addgroup can be run in one of five modes:

useradd Вы должны добавить все опции самостоятельно. Включая разрешения и некоторые другие вещи. adduser делает это на основе нормальных значений по умолчанию (а также добавляет домашний каталог самостоятельно).

Если вам нужно использовать adduser, вам, вероятно, понадобится опция -b вместе с опцией -d!

0
ответ дан 10 April 2015 в 19:06
  • 1
    Спасибо, я can' t находят рабочее руководство также. Походит на you' корректное ре. – Max Lobur 11 January 2016 в 13:17

Используйте adduser.

DESCRIPTION

 adduser  and  addgroup  add users and groups to the system according to
   command    line    options    and    configuration    information    in
   /etc/adduser.conf.   They  are  friendlier  front ends to the low level
   tools like useradd, groupadd and usermod programs, by default  choosing
   Debian  policy conformant UID and GID values, creating a home directory
   with skeletal configuration, running a custom script,  and  other  fea‐
   tures.  adduser and addgroup can be run in one of five modes:

useradd Вы должны добавить все опции самостоятельно. Включая разрешения и некоторые другие вещи. adduser делает это на основе нормальных значений по умолчанию (а также добавляет домашний каталог самостоятельно).

Если вам нужно использовать adduser, вам, вероятно, понадобится опция -b вместе с опцией -d!

0
ответ дан 10 April 2015 в 19:06

Наиболее вероятная причина, по которой вы не создали домашний каталог, заключается в том, что у вас не было CREATE_HOME yes в /etc/login.defs.

Вы можете исправить это, следуя советам @OmPS или @Radu Rădeanu.

Но есть много способов преодолеть эту проблему в будущем, используя одну из следующих команд:

  • Результат sudo adduser linda

    Adding user 'linda'
    Adding new group 'linda' (1001) ...
    Adding new user 'linda' (1001) with group 'linda' ...
    Creating home directory '/home/linda' ...
    Copying files from '/etc/skel' ...
    ****Password confirmation****
    ****Name prompt****
    

    Значения по умолчанию для adduser выбираются из /etc/adduser.conf, если опция --home не указана. Обратите внимание, что он также копирует содержимое /etc/skel.

  • Использовать adduser с --home

    sudo adduser --home /home/linda
    

То же, что и предыдущий параметр, за исключением того, что вы можете захотеть это, если домашний каталог пользователя отличается от имени пользователя что ты назначил.

  • Укажите базовый каталог для команды useradd:

    sudo useradd -b /home
    
  • Используйте login.defs: измените /etc/login.defs и добавьте строку ниже перед выполнением [ 1114]:

    CREATE_HOME   yes
    

Примечание: если вы делаете man login.defs, в настоящее время он говорит

Большая часть функциональности, которая раньше обеспечивалась Набор теневых паролей теперь обрабатывается PAM. Таким образом, /etc/login.defs больше не используется passwd (1) или менее используется login (1) и su (1). Пожалуйста, обратитесь к соответствующим файлам конфигурации PAM.

  • Использовать модуль PAM pam_mkhomedir: со страницы man pam_mkhomedir добавьте строку ниже к /etc/pam.d/login:

    session  required  pam_mkhomedir.so skel=/etc/skel
    
0
ответ дан 10 April 2015 в 19:06

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

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