Почему реализация что-то уже реализованное? Используйте Ehcache.
Однако , если сторонние библиотеки полностью вне рассмотрения, я предполагаю, что Вы надеетесь реализовывать структуру данных, которая выглядит примерно так:
HashMap
, если Вы будете) O(1)
O(1)
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
.
Вы можете исправить это, просто создав домашний каталог.
mkdir /home/linda
chown linda:linda /home/linda
попробуйте войти снова, и это должно сработать.
Посмотрите на /etc/defaults/useradd
, если хотите изменить значения по умолчанию. Используйте:
useradd -m -d /home/joe -s /bin/bash
.
Вы также можете изменить /etc/pam.d/common-session
так, чтобы домашний каталог пользователя создавался при первом входе в систему. Добавьте следующую строку в этот файл.
...
session required pam_mkhomedir.so
Это особенно полезно, если ваша система находится в сети, где пользователи управляются извне вашей машины, например, LDAP.
Добавьте приведенную ниже запись в /etc/login.defs
и сохраните:
CREATE_HOME yes
Теперь попробуйте создать учетные записи пользователей. Это создаст домашний каталог.
Используйте 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!
Наиболее вероятная причина, по которой вы не создали домашний каталог, заключается в том, что у вас не было 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
В соответствии с 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
См. Также: Как создать домашнюю папку пользователя после создания учетной записи?
adduser
, но тем не менее созданный корневой каталог только содержит файлexamples.desktop
и ничто иное. Как я могу заставить Ubuntu создавать папки Desktop по умолчанию, Загрузки и так далее? (I' m зарегистрированный на пути ssh) – Mactilda 14.08.2015, 00:35adduser
не создаст каталог также, если кто-то изменил CREATE_HOME в/etc/login.defs к " no". можно переопределить это с эти-m
флаг. – Mactilda 12.06.2018, 11:35