Я перехожу с одного сервера Linux на другой с очень похожей конфигурацией. У обоих есть Plesk, который автоматически перенес большую часть данных. Однако есть несколько пользователей FTP, созданных вне Plesk, которых мне теперь нужно переместить. Я отфильтровал старый файл passwd, выбрав только те записи, которые мне нужно добавить в новый файл passwd.
Я обнаружил, что если я просто добавлю дополнительных пользователей в passwd на новом сервере, они не получат теневой записи, что впоследствии вызовет проблемы.
Как лучше всего ввести этих пользователей в passwd? Как только они будут импортированы, я установлю пароли с помощью chpasswd.
ОБНОВИТЬ Я хочу импортировать не только имена пользователей, но также группу, домашний каталог и т. Д.
Почему бы не сделать что-нибудь простое, например использование cut / xargs.
cut -d: -f 1 /srv/old_filtered_passwd | xargs -n 1 useradd
Или, может быть, что-то более сложное (не проверено досконально).
awk 'BEGIN{FS=":"} {print "useradd -u " $3 " -g " $4 " -c \"" $5 "\" -h " $6 " "$1}' /srv/old_filtered_passwd > recreate_users
# verify
cat recreate_users
# actually create the users
bash recreate_users
Вы можете сделать все с помощью одной команды, например awk ... | bash
. Хотя я настоятельно рекомендую вам в первый раз взглянуть на вывод awk, чтобы убедиться, что все выглядит правильно.