Я пытаюсь понять системное администрирование на Ubuntu. Итак, в качестве примера я создаю фиктивного пользователя, использующего
и passwd для создания пароля. Я проверяю, что запись была сделана с использованием cat /etc/passwd
Однако, когда I su — linda , я получаю
и, действительно, домашний каталог не создан. Что мне не хватает?
10 ответов
man useradd состояния:
Обратите внимание на low level utility
Чтобы добавить пользователя, вместо этого используйте adduser . Это более высокоуровневая утилита.
Кроме того, глядя на параметр -d :
The directory will not be created if it is missing.
Как правило, избегайте useradd , вместо этого используйте adduser .
вы можете исправить это, просто создав домашний каталог.
попробуйте войти в систему, и это должно сработать.
В зависимости от man useradd , опция -d /home/linda не создаст каталог /home/linda , если этого не хватает. Итак, вы должны создать его вручную. Для этого выполните следующие команды в терминале:
См. также: Как создать домашнюю папку пользователя после учетной записи создание?
Посмотрите на /etc/defaults/useradd , если вы хотите изменить значения по умолчанию. Использование:
useradd -m -d /home/joe -s /bin/bash .
Вы также можете изменить /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 и сохраните:
Теперь попробуйте создать учетные записи пользователей. Он создаст домашний каталог.
useradd вы должны сами добавить все параметры. Включая разрешения и некоторые другие вещи. adduser делает это на основе нормальных значений по умолчанию (а также добавляет домашний каталог самостоятельно).
Если вам нужно использовать adduser, вам, вероятно, понадобится опция -b вместе с опцией -d!
Если /home/linda отсутствует до того, как вы добавите linda в качестве пользователя, вам также нужно будет добавить —create-home .
Наиболее вероятная причина, по которой у вас не было созданного домашнего каталога, заключается в том, что у вас не было CREATE_HOME yes в /etc/login.defs .
Вы можете исправить это, указав, что предложили @OmPS или @Radu Rădeanu.
Но многие способы преодолеть эту проблему в будущем, используя одну из приведенных ниже команд:
Результат sudo adduser linda
По умолчанию для adduser выбираются из /etc/adduser.conf , если —home не указывается. Обратите внимание, что он также копирует содержимое /etc/skel .
Использовать adduser с —home
Аналогично предыдущему параметру, за исключением того, что вы можете захотеть этого, если пользователи домашний каталог отличается от имени пользователя, которое вы назначили.
Укажите базовый каталог для команды useradd :
I checked by doing :
after ls shows my directory malik
as shown in picture as well :
But I don’t know why it is saying "No directory, logging in with" ?
1 Answer 1
The directory permissons says
Owner: root, Group: root, Others: cannot access
I think you created the directory as user root.
Change the directorys permissons with
The sudo command gives you temporary root permissons for a specified command. If you want to get temporary root permissons for more than one command use
About the seconde error message: su — malik
It seams to me that you have not set a home directory for the user malik. You find this settings in /etc/passwd. It should look like
Created a new user in Ubuntu 11.04 using:
Now, after this I set its password using passwd dummy , but when I login to that user using su — dummy . I get the message:
No home directory, logging in with HOME=/
If I check the user account dummy’s entry in /etc/passwd :
I manually created the directory to resolve this issue through mkdir /home/dummy .
Now, the error seems to be resolved, but I’m amazed as to why no files like bash_profile are created in that home directory.