>>Чисто интуитивно попробую предположить, что какие-то грабли с master.passwd, passwd. Ещё вариант
>>- найди последние измененные файлы в /etc.
>>Если я не прав, то как последнюю меру можно использовать пересборку системы
>>из исходников (можно не обновляясь).
>
>Как это сделать?
>И что можно выцепить из passwd?
Про passwd и master.passwd я имел в виду явно нарушенную структуру файла. Т.е. passwd имеет подобный вид:
bash$ cat /etc/passwd
# $FreeBSD: src/etc/master.passwd,v 1.33 2002/06/23 20:46:44 des Exp $
#
root:*:0:0:Charlie &:/root:/bin/chs
toor:*:0:0:Bourne-again Superuser:/root:
daemon:*:1:1:Owner of many system processes:/root:/sbin/nologin
operator:*:2:5:System &:/:/sbin/nologin
....
и т.д.
master.passwd:
cat /etc/master.passwd
# $FreeBSD: src/etc/master.passwd,v 1.33 2002/06/23 20:46:44 des Exp $
#
root:$1$RNQ0H4h3$nVBBVy.9b8B3kOJsoAO95/:0:0::0:0:Charlie &:/root:/bin/chs
toor:*:0:0::0:0:Bourne-again Superuser:/root:
daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
operator:*:2:5::0:0:System &:/:/sbin/nologin
bin:*:3:7::0:0:Binaries Commands and Source:/:/sbin/nologin
....
и т.д. в том же духе.
Можно проверить права и владельцев этих файлов:
ls -lo /etc/master.passwd /etc/passwd
-rw------- 1 root wheel - 1439 Jan 10 20:24 /etc/master.passwd
-rw-r--r-- 1 root wheel - 1233 Jan 10 20:24 /etc/passwd
Подробно про структуру файлов passwd и master.passwd можно прочитать здесь:
man 5 passwd
man 5 master.passwd
Если здесь не находим ничего интересного/подозрительного то:
1. Ради эксперимента пробуем добавить пользвателя:
для этого необходимо перемонтировать / в rw, т.к. при загрузке в single mode при помощи boot -s root-раздел монтируется "только для чтения"
Перемонтируем:
mount /dev/ad2s3a /
где ad2s3a - root-раздел (если не ясно какой писАть - смотри /etc/fstab)
Далее монтируем /usr, /var и всё остальное, что прописано в fstab
mount -a
Добавляем пользователя:
adduser
Если здесь возникнут ошибки они подскажут куда копать дальше.
2. Смотрим время изменения файлов в /etc
ls -lR /etc
Внимательно просматриваем последние измененные файлы. Возможно там и грабли.
3. Смотрим, логи. /var/log
4. Если есть исходники системы - можно попробовать сравнить /etc и /usr/src/etc
diff -r /usr/src/etc /etc
Различий будет много, но, думаю, так будет проще, чем вручную просматривать всё в /etc и вспоминать, где и что "не так".
5. Самый последний вариант - пересобрать и переставить систему.
Этот процесс хорошо расписан во многих источниках.
Если нет проблем с английским, то для тебя больше всего подойдет freebsd handbook, времён твоего релиза. Смотри в /usr/share/doc/handbook
Ищи по словам cvsup, make world, make buildworld, make installworld, mergemaster.
В кратце процесс состоит в следующем:
1. Получение нужных исходников (если их нет или не те) - cvsup либо cd
2. Сборка системы - make buildworld
3. Сборка ядра
4. Установка ядра
5. Установка собранной системы - make installworld
6. Обновление /etc - mergemaster
Перед тем как приступить к этому процессу хорошо разберись с документацией, чтоб машине не стало ещё хуже.