Как добавить пользователя без / home?

79

Я хочу создать нового пользователя для запуска службы в системе, но не хочу иметь /homeи другие файлы конфигурации для него. Как будто есть пользователь для postgres, но у него нет /homeкаталога.

Оваис Лоне
источник
Я только что нашел этот howtogeek.com/howto/ubuntu/add-a-user-on-ubuntu-server
Lone

Ответы:

105

По умолчанию команда useradd не создает домашних каталогов, но для демона я рекомендую вам использовать системный параметр и изменить оболочку на несуществующую, чтобы никто не мог войти в систему с указанной учетной записью (например, в ssh):

sudo useradd -r -s /bin/false USERNAME

Вы можете увидеть все варианты с помощью, man useraddи man groupaddесли вы хотите создать группу для пользователя тоже.

sergio91pt
источник
4
useradd -r создает системного пользователя, а не только пользователя без homedir.
fromnaboo
2
обратите внимание, useradd -r также создает соответствующие группы.
9
Я полагаю, что лучшая практика - использовать /sbin/nologinв качестве оболочки входа в систему, хотя использование /bin/falseне будет иметь никакого значения.
Мяу
51

Попробуйте adduser --system --no-create-home USERNAMEили просто взгляните на то, man adduserчто претендует на звание «более дружественного интерфейса для низкоуровневых инструментов, таких как useradd ... ».

Clausi
источник
4
На самом деле я не заметил, что это adduserпротив useradd, и запуск команды useraddс этими параметрами не выдал никакой ошибки, но создал учетную запись с оболочкой /bin/bash. "Предостережение для покупателя".
Исапир
15

Мне нужно было нечто подобное - новый пользователь без прав входа в систему и привязанный к системному сервису. Тем не менее, ответ Клаузи создает пользователя с основной группой как nogroup, что было не очень желательно.

adduser --system --no-create-home --group USERNAMEсоздает системную группу с тем же именем, что и пользователь, и связывает ее с пользователем в качестве основной группы. Затем это можно проверить с помощью команды groups USERNAMEили id USERNAME.

daoperator
источник
2

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

useradd -M username

или же

useradd --no-create-home username

или же

adduser -M username

или же

adduser --no-create-home username
user477778
источник
1

попробуйте эту команду:

sudo useradd vivek

Это создаст пользователя без создания вашей домашней папки на /home/vivek

Вивекананда Т
источник
1
Нет, если вы вошли в систему с этой учетной записью, /home/vivekона будет создана автоматически.
Мяу