Вопрос Создать домашний каталог по умолчанию для существующего пользователя в терминале


Как мне это сделать? Я создал пользователя без домашнего каталога, и теперь я хочу его создать. Не только папку с именем new_user, мне нужен домашний каталог по умолчанию со всеми его папками и скрытыми файлами и т. Д.


118
2017-08-22 18:54


происхождения


Когда пользователь войдет в систему, эти подкаталоги (Документы, Загрузки и т. Д.) Будут автоматически созданы. Хотя я ищу способы «имитировать» свой логин через терминал. - Alaa Ali
@Alaa su new_user : D - Radu Rădeanu
@ RaduRădeanu да, я уже пробовал это, также попробовал sudo -i -u new_user но это не сработает. Я думаю, нам нужно «имитировать X-вход» ... не знаю, как это сделать. - Alaa Ali
вход в систему не создает подкаталоги в доме. - Jo Rijo


ответы:


Используйте следующее (в качестве root или sudo, если не root):

mkhomedir_helper username

Для этого, папка /home/username не должно существовать.

Для X-связанных папок (Desktop, Downloads и т. Д.) Вам нужно будет войти в графическую среду; они будут автоматически сгенерированы при первом входе в систему.


177
2017-11-05 19:48



Простой и полезный. Таким образом, вы также можете быть уверены, что вновь созданный домашний каталог совместим с вашими политиками системы, не зная их и не манипулируя вручную. - gerlos
Это правильный ответ, по крайней мере, он работал для меня на Ubuntu 14.04.2 LTS. - Christian Wilkie
Сначала я должен был указать свое имя пользователя / etc / passwd, прежде чем это сработало для меня. - user79878
Просто .. просто работает (тм). Должен быть принятый ответ - Newtopian


Подкаталоги (Документы, Загрузки и т. Д.) Автоматически создаются, когда пользователь сначала регистрируется через GNOME, при условии, что домашний каталог создается с правильными разрешениями. Вот демонстрация:

Аля @ аа-лу: ~ $ sudo useradd testinguser
Аля @ аа-лу: ~ $ sudo passwd testinguser
Введите новый пароль UNIX:
Повторите новый пароль UNIX:
passwd: успешно обновлен пароль
Аля @ аа-лу: ~ $ sudo ls -l / home
всего 20
drwxr-xr-x 55 alaa alaa 4096 22 авг 22:00 alaa
drwx ------ 2 корень root 16384 5 июня 09:46 потеряно + найдено
Аля @ аа-лу: ~ $ sudo mkdir / home / testinguser
Аля @ аа-лу: ~ $ sudo chown testinguser: testinguser / home / testinguser
Аля @ аа-лу: ~ $ ls -l / home
всего 24
drwxr-xr-x 55 alaa alaa 4096 22 авг 22:00 alaa
drwx ------ 2 корень root 16384 5 июня 09:46 потеряно + найдено
drwxr-xr-x 2 testuser testinguser 4096 23 авг. 10:03 testuser
Аля @ аа-лу: ~ $ ls -l / home / testinguser /
всего 0
Аля @ аа-лу: ~ $

Вы можете проверить, правильно ли установлен домашний каталог пользователя, проверив запись в /etc/passwd, По умолчанию вы должны увидеть домашний каталог, установленный для /home/testinguser:

Аля @ аа-лу: ~ $ grep testinguser / etc / passwd
testinguser: х: 1001: 1001 ::/ Главная / testinguser: / Бен / ш

Если вы не видите домашний каталог /home/testinguser там вам нужно будет выполнить команду sudo usermod -d /home/testinguser testinguser для его обновления, хотя вам не нужно использовать эту команду, потому что она должна быть установлена ​​по умолчанию (согласно useradd's manpages).

Затем я вышел из своей учетной записи и зашел в систему с помощью testinguser, и вот автоматически создаются подкаталоги:

Аля @ аа-лу: ~ $ ls -l / home / testinguser /
всего 36
drwxr-xr-x 2 testuser testinguser 4096 23 авг. 10:05 Рабочий стол
drwxr-xr-x 2 testuser testinguser 4096 23 авг. 10:05 Документы
drwxr-xr-x 2 testuser testinguser 4096 23 авг. 10:05 Загрузки
drwxr-xr-x 2 testuser testinguser 4096 23 авг. 10:05 Музыка
drwxr-xr-x 2 testuser testinguser 4096 23 авг. 10:07 Картинки
drwxr-xr-x 2 testuser testinguser 4096 23 авг. 10:05 Публичный
drwxr-xr-x 2 testuser testinguser 4096 23 авг. 10:05 Шаблоны
drwxr-xr-x 2 testuser testinguser 4096 Авг 23 10:05 Видео

Мне не нужно было копировать содержимое /etc/skel,

Если возможно, попробуйте выполнить следующие шаги, создав нового пользователя? Как только вы закончите, вы можете удалить этого нового пользователя sudo deluser testinguser && sudo rm -r /home/testinguser,

Если бы все это не сработало с вами, то я предполагаю, что это ошибка.


31
2017-08-23 06:22



В некоторой ситуации, когда вы используете useradd, домашний каталог по умолчанию для нового пользователя не устанавливается автоматически /home/username, Итак, первый ypu должен быть уверен в этом. - Radu Rădeanu
Можете ли вы привести мне пример этих ситуаций =)? Из man-страниц useradd: «useradd будет использовать базовый каталог, указанный переменной HOME в /etc/default/useradd, или /home по умолчанию ". Переменная HOME в /etc/default/useradd не определяется по умолчанию, поэтому useradd всегда будет использовать /home, В любом случае, я отредактирую свой ответ и переведу часть, чтобы проверить /etc/passwd вверх. - Alaa Ali
Пример Вот, Другой пример: вы удаляете пользователя, но вы не удаляете его каталоги и файлы; а затем снова добавить пользователя с тем же именем. И их много, и ошибок нет :) - Radu Rădeanu
Если у вас нет /bin/sh в пользовательской строке /etc/passwd вы должны добавить оболочку для этого пользователя, например, оболочку по умолчанию с usermod -s /bin/sh testuser - rubo77


ОБНОВЛЕНИЕ: решение нарушено и не работает для меня тоже.

Если вы хотите создать домашний каталог пользователя, если он не существует, запустите useradd команды с -m флаг. Это скопирует все файлы из /etc/skel каталог.

useradd -m username

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

  -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.

и далее указывает:

CONFIGURATION

   The following configuration variables in /etc/login.defs change the behavior
   of this tool:

   CREATE_HOME (boolean)
       Indicate if a home directory should be created by default for new users.

12
2017-08-22 19:54



это, похоже, пытается создать нового пользователя, потому что он говорит мне, что «пользователь« новый пользователь »уже существует». - Jo Rijo
Я также тестировал -m флаг при создании нового пользователя в любом случае, и это не сработало; он копирует только файлы скелета. - Alaa Ali
@Jo: И как это неверно, потому что согласно первоначальному сообщению пользователь уже существует. - crafter
Этот ответ не решает проблему. копирование /etc/skel не создает подкаталоги в домашнем каталоге. Также, useradd -m используется при создании нового пользователя, а не когда пользователь уже добавлен. - Alaa Ali
Я обновил сообщение, поэтому установите CREATE_HOME в yes в файле конфигурации login.defs. - crafter


Если вы создали нового пользователя с adduser команды, вам не нужно создавать домашний каталог для нового пользователя. Домашний каталог с именем пользователя в /home каталог со следующими подкаталогами: Desktop, Downloads, Documents, Music, Pictures, Videos (и другие), для нового пользователя будет создан автоматический.

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

sudo -i     #enter your user password when you are asked
gedit /etc/passwd

редактировать /etc/passwd файл как root (это самый важный шаг). Найдите строку с именем нового пользователя и установите для него домашний каталог по умолчанию:

new_username:x:1001:1001::/home/new_username:/bin/sh

На этой строке вы также можете добавить настоящее имя для нового пользователя или установить оболочку по умолчанию. Что-то вроде этого:

new_username:x:1001:1001:Real New Username,,,:/home/new_username:/bin/bash

Будьте осторожны, не делайте никаких других изменений.

После сохранения файла перед тем, как выйти из учетной записи root, выполните следующие команды:

mkdir /home/new_username                                      #to create the directory /home/new_username
cp /etc/skel/* /home/new_username                             #to copy copy files from the /home/new_username
chown -R new_username:new_username /home/new_username   #to change the owner of /home/new_username to the new user

После всего этого домашняя папка для нового пользователя будет автоматически заполнена после первого входа.

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


4
2017-08-22 19:18



Насколько я помню, домашняя папка не создается автоматически, ее необходимо вручную создать и обновить запись пользователя в /etc/passwd (если его еще нет). Как только пользователь войдет в систему, домашняя папка будет автоматически заполнена этими подкаталогами. Однако все это позаботится о том, что кто-то добавляет пользователя, используя adduser, вместо useradd, - Alaa Ali
@Alaa Я только что проверил несколько дней назад, и я использовал adduser: домашняя папка является автоматически создается. И действительно, домашняя папка будет автоматически заполнена после первого входа. - Radu Rădeanu
это, кажется, ничего не делает. Могу ли я попробовать скрипт bash из другого вопроса, но не могу ли я просто создать папку в / home / called new_user, а затем скопировать содержимое / etc / skel на него? это то, что делает этот баш-скрипт? - Jo Rijo
@JoRijo Я отредактировал свой ответ. - Radu Rădeanu
@ RaduRădeanu, разве вы не имеете в виду cp /etc/skel/* /home/new_username? Кроме того, есть причина, по которой вы используете два последовательных chown команды? - Alaa Ali


Все, что вам нужно, это домашняя папка, чтобы заставить ее работать. Как корень,

cd /home
cd mkdir username
chown username username
chgrp username username

Вход в систему с первого раза должен создать все необходимые файлы, которые, кажется, таковы:

drwxr-xr-x 16 fotanus fotanus 4096 Jun  4 17:46 .
drwxr-xr-x  9 root    root    4096 Jun  4 17:43 ..
drwx------ 11 fotanus fotanus 4096 Jun  4 17:46 .cache
drwx------ 13 fotanus fotanus 4096 Jun  4 17:46 .config
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Desktop
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Documents
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Downloads
drwx------  3 fotanus fotanus 4096 Jun  4 17:46 .gconf
drwxrwxr-x  2 fotanus fotanus 4096 Jun  4 17:46 .gstreamer-0.10
-rw-------  1 fotanus fotanus  334 Jun  4 17:45 .ICEauthority
drwxr-xr-x  3 fotanus fotanus 4096 Jun  4 17:45 .local
drwx------  4 fotanus fotanus 4096 Jun  4 17:45 .mozilla
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Music
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Pictures
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Public
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Templates
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Videos
-rw-------  1 fotanus fotanus   55 Jun  4 17:45 .Xauthority
-rw-------  1 fotanus fotanus  711 Jun  4 17:45 .xsession-errors

3
2018-06-04 20:49