URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 28282
[ Назад ]

Исходное сообщение
"Help!!!"

Отправлено Krom , 31-Мрт-03 19:34 
Установил на новом винте FreeBSD 4.5, а со старого (тамм версия 3.2) перенёс домашние директории пользователей и файлы "master.passwd" и "passwd".
Получилось очень интересно - часть пользователей - фантомы :-((
То есть: им не разрешает система логинится по тому, как считает их несуществующими. Пробовал удалять их - то же самое - говорит, что отсутствует такой юзер. А если попробовать добавить его, то говорит, что он уже существует!!! :-(
Помогите разобраться, может я чего упустил?

Содержание

Сообщения в этом обсуждении
"Help!!!"
Отправлено kim , 31-Мрт-03 20:09 
# pwd_mkdb -d /etc/ master.passwd

P.S. бывали случаи когда "слетают" пароли...
___
Good Luck


"Help!!!"
Отправлено lavr , 31-Мрт-03 20:11 
>Установил на новом винте FreeBSD 4.5, а со старого (тамм версия 3.2)
>перенёс домашние директории пользователей и файлы "master.passwd" и "passwd".
>Получилось очень интересно - часть пользователей - фантомы :-((
>То есть: им не разрешает система логинится по тому, как считает их
>несуществующими. Пробовал удалять их - то же самое - говорит, что
>отсутствует такой юзер. А если попробовать добавить его, то говорит, что
>он уже существует!!! :-(
>Помогите разобраться, может я чего упустил?

кто ж знает что ты делал, если просто взял и перенес master.passwd и
passwd - то голову лечить нужно эт к гадалке не ходи.

После установки у тебя были /etc/passwd и master.passwd ПРАВИЛЬНОГО,
НУЖНОГО формата и хеши: /etc/pwd.db и /etc/spwd.db

man pwd_mkdb

Все что нужно было сделать, прочитать man 5 passwd и сравнить поля
нового и старого master.passwd, после чего написать скрипт вырезающий
всех нужных тебе пользователей из старого master.passwd с конвертацие(добавлением новых полей для соответствия новому формату)
Получил бы файл usernewstyle_master.passwd, после чего его можно
прямо через vipw подгрузить к текущему что есть после установки.
После vipw базы автоматически будут пересобраны, ошибаться в форматах
нельзя, иначе замучаешься потом искать.
Почти такой же вариант:

- вырезать из старого /etc/passwd всех пользователей, сконвертить в новый
формат newpasswd_oldusers
- по newpasswd_oldusers вырезать этих пользователей из старого master.passwd с конвертацией опять же в новый формат
(ошибок быть не должно)
- теперь можно склеивать текущий passwd с изготовленным, текущий
master.passwd с изготовленным
- после склейки pwd_mkdb и он не должен выдать ошибок.

остальное - пользовательские SHELL'ы указанные в passwd, должны
присутствовать в /etc/shells, ну и не забыть поправить текущий /etc/group
в соответствии с тем что было в старом.

Елки, это и в man 5 passwd описывается

Да, оригинальный passwd/master.passwd можно взять из /usr/src/etc/master.passwd, надеюсь понятно как это сделать(домашнее задание)?