Я пытаюсь понять системное администрирование в 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=/
и действительно, домашний каталог не был создан. Что мне не хватает?
Благодарю.
command-line
bash
users
home-directory
tchakravarty
источник
источник
adduser
но все же созданный домашний каталог содержит только файлexamples.desktop
и ничего больше. Как я могу заставить Ubuntu создавать папки по умолчанию для рабочего стола, загрузок и так далее? (Я вошел через ssh)adduser
также не создаст каталог, если кто-то изменил CREATE_HOME в /etc/login.defs на «нет». Вы можете переопределить это с-m
флагом.Вы можете исправить это, просто создав домашний каталог.
попробуйте войти снова, и это должно работать.
источник
В соответствии с
man useradd
,-d /home/linda
опция не будет создавать каталог/home/linda
, если этого не хватает. Итак, вы должны создать его вручную. Для этого выполните следующие команды в терминале:Смотрите также: Как сделать домашнюю папку пользователя после создания учетной записи?
источник
Посмотрите
/etc/defaults/useradd
, хотите ли вы изменить настройки по умолчанию. Использование:useradd -m -d /home/joe -s /bin/bash
,источник
-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. useradd will create the home directory unless CREATE_HOME in /etc/login.defs is set to no.
@astrojuanluВы также можете изменить
/etc/pam.d/common-session
его так, чтобы домашний каталог пользователя создавался при первом входе в систему. Добавьте следующую строку в этот файл.Это особенно полезно, если ваша система находится в сети, где пользователи управляются внешним образом на вашем компьютере, например, LDAP.
источник
Используйте
-m
вместо-d
, так что каталог будет создан для вас:sudo useradd -m linda
Кроме того, если
linda
это обычный пользователь, вы можете использовать его/bin/bash
по умолчаниюshell
:sudo useradd -m linda -s /bin/bash
источник
Добавьте приведенную ниже запись
/etc/login.defs
и сохраните:Теперь попробуйте создать учетные записи пользователей. Это создаст домашний каталог.
источник
Используйте
adduser
.useradd
Вы должны добавить все варианты самостоятельно. В том числе разрешения и некоторые другие вещи.adduser
делает это на основе нормальных значений по умолчанию (а также добавляет домашний каталог самостоятельно).Если вам нужно использовать adduser, вам, вероятно, понадобится опция -b вместе с опцией -d!
источник
Если
/home/linda
нет, прежде чем вы добавите Линду как пользователя, вам также придется добавить--create-home
.источник
Наиболее вероятная причина, по которой вы не создали домашний каталог, заключается в том, что у вас не было
CREATE_HOME yes
in/etc/login.defs
.Вы можете исправить это, следуя советам @OmPS или @Radu Rădeanu.
Но так много способов преодолеть эту проблему в будущем, используя одну из следующих команд:
Результат
sudo adduser linda
По умолчанию для adduser выбираются,
/etc/adduser.conf
если--home
опция не указана. Обратите внимание, что он также копирует/etc/skel
содержимое.Использовать Adduser с
--home
То же, что и в предыдущем варианте, за исключением того, что вы можете захотеть, если домашний каталог пользователя отличается от имени пользователя, которое вы назначили.
Укажите базовый каталог для
useradd
команды:Используйте login.defs: измените
/etc/login.defs
и добавьте строку ниже, прежде чем делатьsudo useradd
:Примечание: если вы делаете
man login.defs
, это в настоящее время говоритБольшая часть функциональности, которая раньше предоставлялась набором теневых паролей, теперь обрабатывается PAM. Таким образом, /etc/login.defs больше не используется passwd (1) или менее используется login (1) и su (1). Пожалуйста, обратитесь к соответствующим файлам конфигурации PAM.
Используйте PAM-модуль pam_mkhomedir: со
man pam_mkhomedir
страницы добавьте следующую строку в/etc/pam.d/login
:источник