Как добавить пользователя без команды useradd?

11

Можно ли добавить пользователя в Ubuntu Linux без команды useradd? Я думаю, что это возможно, добавив записи в, /etc/passwd and /etc/shadowно я не знаю точных шагов, чтобы сделать это, и пользователь должен получить свой домашний каталог и оболочку Bash тоже.

mr_eclair
источник

Ответы:

19

Не рекомендуется вручную изменять /etc/passwd, /etc/shadow, /etc/groupили /etc/gshadowиз - за риска поломки. Если вы ищете альтернативную команду, которую проще использовать, взгляните на adduser(8). Все, что вам нужно для запуска:

sudo adduser user

Оболочка будет /bin/bashпо умолчанию пер /etc/adduser.conf.

Обычно, если вы хотите добавить пользователя с помощью оболочки bash, тем самым создать домашний каталог /home/userи группу пользователей, вы должны использовать:

sudo useradd --create-home --shell /bin/bash --user-group user

Эта команда в основном определяет свободный идентификатор пользователя и идентификатор $UIDгруппы, $GIDа затем выполняет следующие команды:

echo "user:x:$UID:$GID::/home/user:/bin/bash" | sudo tee -a /etc/passwd
echo "user:x:$GID:" | sudo tee -a /etc/group
echo "user:!:$DATE_OF_LAST_PASS_CHANGE:0:99999:7:::" | sudo tee -a /etc/shadow
echo "user:!::" | sudo tee -a /etc/gshadow

... и тем самым возможно сделать резервную копию файлов.

Следующие справочные страницы о форматах файлов могут быть вам интересны:

Lekensteyn
источник
Эй, Лекенштейн, ты пропустил эту первую часть их поста? «Можно ли добавить пользователя в Ubuntu Linux без команды useradd ...» Они хотят решения без useradd: /
Томас Уорд
1
@TheEvilPhoenix: я думал, что он спрашивает об альтернативе для adduser. Я сейчас включил в adduserкачестве ответа. Это действительно "без useradd" :)
Лекенштейн
Нет проблем, хотел указать на это все. и прости меня за полуконфронтацию ... долгие, плохие дни на работе с отказом каскадного сервера делают это для тебя ...
Томас Уорд
@ Все я хочу создать пользователя без useradd, добавив возможные записи в / etc / passwd и / etc / shadow
mr_eclair
2
@ m59 >>пытается открыть файл как текущий (не root) пользователь, который потерпит неудачу с ошибкой «Отказано в доступе». Использование sudo teeобходит это. Кроме того, вы можете обернуть команду в, sudo sh -c '...'чтобы избежать этой проблемы.
Лекенштейн
1

Хотя обычно это не нужно или не рекомендуется, ответом на вопрос « Как добавить пользователя без команды useradd» является использованиеsudo vipw

Это запустит ваш системный редактор при блокировке файла passwd. Введите строку для нового пользователя. (В vi, shift-G, чтобы перейти к последней строке, затем yy p, чтобы продублировать его.) Отредактируйте имя пользователя и создайте уникальный идентификационный номер пользователя.

После сохранения файла и выхода из редактора вам будет предложено отредактировать / etc / shadow. Используйте ту же технику для создания новой строки и используйте «*» для хэширования пароля. Новая учетная запись заблокирована. Используйте, passwd usernameчтобы разблокировать его и установить пароль.

Также необходимо создать домашний каталог, скопировать файлы из каталога скелета, установить разрешения для групп и т. Д. Но vipwэто ваш основной ресурс. Смотрите также vigr.

Источник: http://itguykelly.wordpress.com/2011/04/19/manually-add-new-user-to-red-hatfedoracentos/ (да, эти команды работают в различных вариантах * nix)

DrumEater
источник
0

Когда пользователь создается в системе, это влияет на файлы, такие как / etc / пройденный, / etc / group, / etc / shadow, поэтому просмотрите эти файлы и введите ручную запись. И, наконец, из файла / etc / skel добавьте скелет для пользователя в домашний каталог пользователя, который вы должны создать в домашнем каталоге.

Говинд Сараф
источник