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

105

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

    
задан Jo Rijo 22.08.2013 в 18:54
источник

5 ответов

158

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

mkhomedir_helper username

Чтобы это работать, папка /home/username не должна существовать.

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

    
ответ дан kavadias 05.11.2014 в 19:48
29

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

alaa@aa-lu:~$ sudo useradd testinguser
alaa@aa-lu:~$ sudo passwd testinguser
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
alaa@aa-lu:~$ sudo ls -l /home
total 20
drwxr-xr-x 55 alaa alaa  4096 Aug 22 22:00 alaa
drwx------  2 root root 16384 Jun  5 09:46 lost+found
alaa@aa-lu:~$ sudo mkdir /home/testinguser
alaa@aa-lu:~$ sudo chown testinguser:testinguser /home/testinguser
alaa@aa-lu:~$ ls -l /home
total 24
drwxr-xr-x 55 alaa        alaa         4096 Aug 22 22:00 alaa
drwx------  2 root        root        16384 Jun  5 09:46 lost+found
drwxr-xr-x  2 testinguser testinguser  4096 Aug 23 10:03 testinguser
alaa@aa-lu:~$ ls -l /home/testinguser/
total 0
alaa@aa-lu:~$

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

alaa@aa-lu:~$ grep testinguser /etc/passwd
testinguser:x:1001:1001::/home/testinguser:/bin/sh

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

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

alaa@aa-lu:~$ ls -l /home/testinguser/
total 36
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Desktop
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Documents
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Downloads
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Music
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:07 Pictures
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Public
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Templates
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Videos

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

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

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

    
ответ дан Alaa Ali 23.08.2013 в 06:22
12

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

Если вы хотите создать домашний каталог пользователя, если он не существует, запустите команду 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.
    
ответ дан crafter 22.08.2013 в 19:54
4

Если вы создали нового пользователя с командой adduser , вам не нужно создавать домашний каталог для нового пользователя. Домашний каталог с именем пользователя в каталоге /home со следующими подкаталогами: Рабочий стол, Загрузки, Документы, Музыка, Картинки, Видео (и другие), для нового пользователя будет создан автоматически.

Если вы создали нового пользователя с командой 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

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

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

    
ответ дан Radu Rădeanu 22.08.2013 в 19:18
3

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

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
    
ответ дан fotanus 04.06.2014 в 20:49