Как создать домашнюю папку пользователя после создания учетной записи? [Дубликат]

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

Я создал нового пользователя с useradd name и забыл использовать -d -m, чтобы создать свой домашний каталог. Я попытался сделать это, скопировав содержимое / etc / skel и chown все для нового пользователя.

Псевдонимы не работают, например ll, и я просто имею $ в командной строке вместо name@server ~$. Кроме того, используя колесо прокрутки, вывоз мусора в командной строке: (

Как это исправить, или проще удалить пользователя и начать его?

55
задан 19 June 2012 в 05:28

40 ответов

Чтобы изменить значение по умолчанию для домашнего каталога нового пользователя, вы можете дать команду

sudo useradd -D --base-dir /home/new_user

. См. Useradd -D [опции] из

man useradd 
4
ответ дан 25 July 2018 в 18:26

Я просто столкнулся с этим (Ubuntu 12.04), и я решил его, создав временного пользователя, скопировав его через каталог пользователя, его chowning и, наконец, удалив пользователя temp.

sudo adduser temp
sudo cp -r /home/temp /home/name
sudo chown -R name.name /home/name
sudo deluser temp
1
ответ дан 25 July 2018 в 18:26

Посмотрите на команду xdg-user-dirs-update. Он создаст каталоги Windows X по умолчанию: Desktop, Download и т. Д.

Пользователь, не имеющий каталогов по умолчанию, может запустить xdg-user-dirs-update --force для создания каталогов. Я должен был сделать это для одной из моих учетных записей.

Я рекомендую прочитать справочную страницу перед запуском команды xdg-user-dirs-update. Страница man для xdg-user-dir добавляет несколько деталей.

«Спецификация базового каталога XDG» является частью спецификаций freedesktop.org.

4
ответ дан 25 July 2018 в 18:26

У вас есть $ в командной строке, потому что вы используете оболочку sh.

Оболочка с name@server основана на оболочке bash.

Вы должны изменить оболочку по умолчанию для вновь созданного пользователя через: usermod -s /bin/bash.

Снова использовать usermod, чтобы добавить домашний каталог пользователя, если его нет. usermod -d /home/username

Если у пользователя нет домашнего каталога, указанного в /etc/passwd:

Запустите mkhomedir_helper <username>, чтобы создать домашний каталог. mkhomedir_helper создаст домашний каталог пользователя и скопирует материал в /etc/skel.

Если у пользователя уже есть домашний каталог, указанный в /etc/passwd:

Например, через usermod -d /some/directory, mkhomedir_helper не будет работать. Единственный способ - вручную создать домашний каталог для затронутого пользователя.

53
ответ дан 25 July 2018 в 18:26

Если вы забыли использовать -d -m, лучшим и быстрым вариантом является запуск

sudo mkhomedir_helper username

с созданием домашнего каталога, как если бы вы предоставили отсутствующие параметры.

2
ответ дан 25 July 2018 в 18:26

Вот быстрый скрипт bash. Запустите с правами root sudo. Он принимает любое количество аргументов, каждый из которых является именем пользователя, нуждающимся в домашнем каталоге. Это делает несколько предположений: ваши домашние каталоги находятся в /home, а ваш каталог скелета - /etc/skel. Это значения по умолчанию для Ubuntu. Вы можете скачать или wget / curl этот скрипт из gist .

#!/bin/bash
if [ $# -lt 1 ]; then
    echo "Syntax: $_ USER[ USER[ ...]]" >&2
    exit 1
fi

exit_code=0

for user in "$@"; do
    home="/home/$user"
    cp -R /etc/skel "$home" && echo $'\e[32m'"Copied skeleton to: $home"$'\e[m' || ( exit_code=$?; echo $'\e[31m'"Failed to create: $home"$'\e[m' ) >&2
    chown -R "$user:$user" "$home" && echo $'\e[32m'"Set owner on: $home"$'\e[m' || ( exit_code=$?; echo $'\e[31m'"Failed to set owner on: $home"$'\e[m' ) >&2
done

exit $exit_code
6
ответ дан 31 July 2018 в 10:28

Я просто столкнулся с этим (Ubuntu 12.04), и я решил его, создав временного пользователя, скопировав его через каталог пользователя, его chowning и, наконец, удалив пользователя temp.

sudo adduser temp
sudo cp -r /home/temp /home/name
sudo chown -R name.name /home/name
sudo deluser temp
1
ответ дан 31 July 2018 в 10:28

Посмотрите на команду xdg-user-dirs-update. Он создаст каталоги Windows X по умолчанию: Desktop, Download и т. Д.

Пользователь, не имеющий каталогов по умолчанию, может запустить xdg-user-dirs-update --force для создания каталогов. Я должен был сделать это для одной из моих учетных записей.

Я рекомендую прочитать справочную страницу перед запуском команды xdg-user-dirs-update. Страница man для xdg-user-dir добавляет несколько деталей.

«Спецификация базового каталога XDG» является частью спецификаций freedesktop.org.

4
ответ дан 31 July 2018 в 10:28

Чтобы изменить значение по умолчанию для домашнего каталога нового пользователя, вы можете дать команду

sudo useradd -D --base-dir /home/new_user

. См. Useradd -D [опции] из

man useradd 
4
ответ дан 31 July 2018 в 10:28

У вас есть $ в командной строке, потому что вы используете оболочку sh.

Оболочка с name@server основана на оболочке bash.

Вы должны изменить оболочку по умолчанию для вновь созданного пользователя через: usermod -s /bin/bash.

Снова использовать usermod, чтобы добавить домашний каталог пользователя, если его нет. usermod -d /home/username

Если у пользователя нет домашнего каталога, указанного в /etc/passwd:

Запустите mkhomedir_helper <username>, чтобы создать домашний каталог. mkhomedir_helper создаст домашний каталог пользователя и скопирует материал в /etc/skel.

Если у пользователя уже есть домашний каталог, указанный в /etc/passwd:

Например, через usermod -d /some/directory, mkhomedir_helper не будет работать. Единственный способ - вручную создать домашний каталог для затронутого пользователя.

53
ответ дан 31 July 2018 в 10:28

Если вы забыли использовать -d -m, лучшим и быстрым вариантом является запуск

sudo mkhomedir_helper username

с созданием домашнего каталога, как если бы вы предоставили отсутствующие параметры.

2
ответ дан 31 July 2018 в 10:28

Вот быстрый скрипт bash. Запустите с правами root sudo. Он принимает любое количество аргументов, каждый из которых является именем пользователя, нуждающимся в домашнем каталоге. Это делает несколько предположений: ваши домашние каталоги находятся в /home, а ваш каталог скелета - /etc/skel. Это значения по умолчанию для Ubuntu. Вы можете скачать или wget / curl этот скрипт из gist .

#!/bin/bash
if [ $# -lt 1 ]; then
    echo "Syntax: $_ USER[ USER[ ...]]" >&2
    exit 1
fi

exit_code=0

for user in "$@"; do
    home="/home/$user"
    cp -R /etc/skel "$home" && echo $'\e[32m'"Copied skeleton to: $home"$'\e[m' || ( exit_code=$?; echo $'\e[31m'"Failed to create: $home"$'\e[m' ) >&2
    chown -R "$user:$user" "$home" && echo $'\e[32m'"Set owner on: $home"$'\e[m' || ( exit_code=$?; echo $'\e[31m'"Failed to set owner on: $home"$'\e[m' ) >&2
done

exit $exit_code
6
ответ дан 2 August 2018 в 00:37

Я просто столкнулся с этим (Ubuntu 12.04), и я решил его, создав временного пользователя, скопировав его через каталог пользователя, его chowning и, наконец, удалив пользователя temp.

sudo adduser temp
sudo cp -r /home/temp /home/name
sudo chown -R name.name /home/name
sudo deluser temp
1
ответ дан 2 August 2018 в 00:37

Чтобы изменить значение по умолчанию для домашнего каталога нового пользователя, вы можете дать команду

sudo useradd -D --base-dir /home/new_user

. См. Useradd -D [опции] из

man useradd 
4
ответ дан 2 August 2018 в 00:37

Посмотрите на команду xdg-user-dirs-update. Он создаст каталоги Windows X по умолчанию: Desktop, Download и т. Д.

Пользователь, не имеющий каталогов по умолчанию, может запустить xdg-user-dirs-update --force для создания каталогов. Я должен был сделать это для одной из моих учетных записей.

Я рекомендую прочитать справочную страницу перед запуском команды xdg-user-dirs-update. Страница man для xdg-user-dir добавляет несколько деталей.

«Спецификация базового каталога XDG» является частью спецификаций freedesktop.org.

4
ответ дан 2 August 2018 в 00:37

У вас есть $ в командной строке, потому что вы используете оболочку sh.

Оболочка с name@server основана на оболочке bash.

Вы должны изменить оболочку по умолчанию для вновь созданного пользователя через: usermod -s /bin/bash.

Снова использовать usermod, чтобы добавить домашний каталог пользователя, если его нет. usermod -d /home/username

Если у пользователя нет домашнего каталога, указанного в /etc/passwd:

Запустите mkhomedir_helper <username>, чтобы создать домашний каталог. mkhomedir_helper создаст домашний каталог пользователя и скопирует материал в /etc/skel.

Если у пользователя уже есть домашний каталог, указанный в /etc/passwd:

Например, через usermod -d /some/directory, mkhomedir_helper не будет работать. Единственный способ - вручную создать домашний каталог для затронутого пользователя.

53
ответ дан 2 August 2018 в 00:37

Если вы забыли использовать -d -m, лучшим и быстрым вариантом является запуск

sudo mkhomedir_helper username

с созданием домашнего каталога, как если бы вы предоставили отсутствующие параметры.

2
ответ дан 2 August 2018 в 00:37

Чтобы изменить значение по умолчанию для домашнего каталога нового пользователя, вы можете дать команду

sudo useradd -D --base-dir /home/new_user

. См. Useradd -D [опции] из

man useradd 
4
ответ дан 4 August 2018 в 16:08

Я просто столкнулся с этим (Ubuntu 12.04), и я решил его, создав временного пользователя, скопировав его через каталог пользователя, его chowning и, наконец, удалив пользователя temp.

sudo adduser temp
sudo cp -r /home/temp /home/name
sudo chown -R name.name /home/name
sudo deluser temp
1
ответ дан 4 August 2018 в 16:08

Вот быстрый скрипт bash. Запустите с правами root sudo. Он принимает любое количество аргументов, каждый из которых является именем пользователя, нуждающимся в домашнем каталоге. Это делает несколько предположений: ваши домашние каталоги находятся в /home, а ваш каталог скелета - /etc/skel. Это значения по умолчанию для Ubuntu. Вы можете скачать или wget / curl этот скрипт из gist .

#!/bin/bash
if [ $# -lt 1 ]; then
    echo "Syntax: $_ USER[ USER[ ...]]" >&2
    exit 1
fi

exit_code=0

for user in "$@"; do
    home="/home/$user"
    cp -R /etc/skel "$home" && echo $'\e[32m'"Copied skeleton to: $home"$'\e[m' || ( exit_code=$?; echo $'\e[31m'"Failed to create: $home"$'\e[m' ) >&2
    chown -R "$user:$user" "$home" && echo $'\e[32m'"Set owner on: $home"$'\e[m' || ( exit_code=$?; echo $'\e[31m'"Failed to set owner on: $home"$'\e[m' ) >&2
done

exit $exit_code
6
ответ дан 4 August 2018 в 16:08

Если вы забыли использовать -d -m, лучшим и быстрым вариантом является запуск

sudo mkhomedir_helper username

с созданием домашнего каталога, как если бы вы предоставили отсутствующие параметры.

2
ответ дан 4 August 2018 в 16:08

У вас есть $ в командной строке, потому что вы используете оболочку sh.

Оболочка с name@server основана на оболочке bash.

Вы должны изменить оболочку по умолчанию для вновь созданного пользователя через: usermod -s /bin/bash.

Снова использовать usermod, чтобы добавить домашний каталог пользователя, если его нет. usermod -d /home/username

Если у пользователя нет домашнего каталога, указанного в /etc/passwd:

Запустите mkhomedir_helper <username>, чтобы создать домашний каталог. mkhomedir_helper создаст домашний каталог пользователя и скопирует материал в /etc/skel.

Если у пользователя уже есть домашний каталог, указанный в /etc/passwd:

Например, через usermod -d /some/directory, mkhomedir_helper не будет работать. Единственный способ - вручную создать домашний каталог для затронутого пользователя.

53
ответ дан 4 August 2018 в 16:08

Вот быстрый скрипт bash. Запустите с правами root sudo. Он принимает любое количество аргументов, каждый из которых является именем пользователя, нуждающимся в домашнем каталоге. Это делает несколько предположений: ваши домашние каталоги находятся в /home, а ваш каталог скелета - /etc/skel. Это значения по умолчанию для Ubuntu. Вы можете скачать или wget / curl этот скрипт из gist .

#!/bin/bash
if [ $# -lt 1 ]; then
    echo "Syntax: $_ USER[ USER[ ...]]" >&2
    exit 1
fi

exit_code=0

for user in "$@"; do
    home="/home/$user"
    cp -R /etc/skel "$home" && echo $'\e[32m'"Copied skeleton to: $home"$'\e[m' || ( exit_code=$?; echo $'\e[31m'"Failed to create: $home"$'\e[m' ) >&2
    chown -R "$user:$user" "$home" && echo $'\e[32m'"Set owner on: $home"$'\e[m' || ( exit_code=$?; echo $'\e[31m'"Failed to set owner on: $home"$'\e[m' ) >&2
done

exit $exit_code
6
ответ дан 6 August 2018 в 00:46

У вас есть $ в командной строке, потому что вы используете оболочку sh.

Оболочка с name@server основана на оболочке bash.

Вы должны изменить оболочку по умолчанию для вновь созданного пользователя через: usermod -s /bin/bash.

Снова использовать usermod, чтобы добавить домашний каталог пользователя, если его нет. usermod -d /home/username

Если у пользователя нет домашнего каталога, указанного в /etc/passwd:

Запустите mkhomedir_helper <username>, чтобы создать домашний каталог. mkhomedir_helper создаст домашний каталог пользователя и скопирует материал в /etc/skel.

Если у пользователя уже есть домашний каталог, указанный в /etc/passwd:

Например, через usermod -d /some/directory, mkhomedir_helper не будет работать. Единственный способ - вручную создать домашний каталог для затронутого пользователя.

53
ответ дан 6 August 2018 в 00:46

Посмотрите на команду xdg-user-dirs-update. Он создаст каталоги Windows X по умолчанию: Desktop, Download и т. Д.

Пользователь, не имеющий каталогов по умолчанию, может запустить xdg-user-dirs-update --force для создания каталогов. Я должен был сделать это для одной из моих учетных записей.

Я рекомендую прочитать справочную страницу перед запуском команды xdg-user-dirs-update. Страница man для xdg-user-dir добавляет несколько деталей.

«Спецификация базового каталога XDG» является частью спецификаций freedesktop.org.

4
ответ дан 6 August 2018 в 00:46

Если вы забыли использовать -d -m, лучшим и быстрым вариантом является запуск

sudo mkhomedir_helper username

с созданием домашнего каталога, как если бы вы предоставили отсутствующие параметры.

2
ответ дан 6 August 2018 в 00:46

Посмотрите на команду xdg-user-dirs-update. Он создаст каталоги Windows X по умолчанию: Desktop, Download и т. Д.

Пользователь, не имеющий каталогов по умолчанию, может запустить xdg-user-dirs-update --force для создания каталогов. Я должен был сделать это для одной из моих учетных записей.

Я рекомендую прочитать справочную страницу перед запуском команды xdg-user-dirs-update. Страница man для xdg-user-dir добавляет несколько деталей.

«Спецификация базового каталога XDG» является частью спецификаций freedesktop.org.

4
ответ дан 7 August 2018 в 18:11

Чтобы изменить значение по умолчанию для домашнего каталога нового пользователя, вы можете дать команду

sudo useradd -D --base-dir /home/new_user

. См. Useradd -D [опции] из

man useradd 
4
ответ дан 7 August 2018 в 18:11

Я просто столкнулся с этим (Ubuntu 12.04), и я решил его, создав временного пользователя, скопировав его через каталог пользователя, его chowning и, наконец, удалив пользователя temp.

sudo adduser temp
sudo cp -r /home/temp /home/name
sudo chown -R name.name /home/name
sudo deluser temp
1
ответ дан 7 August 2018 в 18:11

Вот быстрый скрипт bash. Запустите с правами root sudo. Он принимает любое количество аргументов, каждый из которых является именем пользователя, нуждающимся в домашнем каталоге. Это делает несколько предположений: ваши домашние каталоги находятся в /home, а ваш каталог скелета - /etc/skel. Это значения по умолчанию для Ubuntu. Вы можете скачать или wget / curl этот скрипт из gist .

#!/bin/bash
if [ $# -lt 1 ]; then
    echo "Syntax: $_ USER[ USER[ ...]]" >&2
    exit 1
fi

exit_code=0

for user in "$@"; do
    home="/home/$user"
    cp -R /etc/skel "$home" && echo $'\e[32m'"Copied skeleton to: $home"$'\e[m' || ( exit_code=$?; echo $'\e[31m'"Failed to create: $home"$'\e[m' ) >&2
    chown -R "$user:$user" "$home" && echo $'\e[32m'"Set owner on: $home"$'\e[m' || ( exit_code=$?; echo $'\e[31m'"Failed to set owner on: $home"$'\e[m' ) >&2
done

exit $exit_code
6
ответ дан 7 August 2018 в 18:11

Другие вопросы по тегам:

Похожие вопросы: