Перенос пользователей

stomotolog

New member
Регистрация
11.08.2005
Сообщения
29
Реакции
0
Баллы
1
Возраст
46
Местоположение
Москва
Доброго здоровьица!!!
Подскажите пожалуйста.. может конечно такой вопрос уже был, я не нашёл ничего на форуме...
В общем есть Linux с postfix, 360 пользователей (почтовых ясчиков), как мне перенести всех пользователей? Незабивать же всех Юзверей и пароли.... Хочу всё поднять на FreeBSD (а то линь RHEL3 загибается ). Как Ваше мнение есчё хотелось бы узнать будет ли быстро работать в этом случае дисковые операции (RAID 5, SCSI)?
С Уважением.
 

drsmoll

Member
Регистрация
20.05.2005
Сообщения
59
Реакции
5
Баллы
8
Возраст
49
Местоположение
Vitebsk
cp /etc/passwd /mnt/new/etc/
:)
 

enyuri

Active member
Регистрация
30.06.2005
Сообщения
162
Реакции
40
Баллы
28
Возраст
52
Местоположение
Москва
Привет!
1. Скопировать файлы с паролями.
cp -a /etc/passwd /newlocation/etc/passwd
cp -a /etc/shadow /newlocation/etc/shadow
cp -a /etc/group /newlocation/etc/group

2. Скопировать хоум директории
cp -a /home/* /newlocation/home/

Не забываем остановить postfix перед копированием хоумов.

PS. Банально копировать файлы с паролями нельзя! Системные пользователи и группы должны остаться, поэтому нужно сначала скопировать файлы в другое место, из них поудалять строчки с системными пользователями, а потом добавить эти файлы к номым парольным файлам
cat /xxx/passwd >> /newlocation/etc/passwd
cat /xxx/shadow>> /newlocation/etc/shadow
cat /xxx/group>> /newlocation/etc/group
 

stomotolog

New member
Регистрация
11.08.2005
Сообщения
29
Реакции
0
Баллы
1
Возраст
46
Местоположение
Москва
Уважаемый enyuri !!!
Вы знаете что то не выходит каменный цветок... всё сделал так как Вы сказали... но нифига... FreeBSD ГВРИТ мне при попытке залогиниться no such user.... как то можно базу паролей и пользователей обновить? Неподскажите?
С Уважением!!!
Спасибо!!!
 

enyuri

Active member
Регистрация
30.06.2005
Сообщения
162
Реакции
40
Баллы
28
Возраст
52
Местоположение
Москва
Вопрос до конца не понял, но направление понятно.
Посмотри, что написано у тебя в новом (на фреБСД) /etc/passwd
Если пользователь там есть, но под этим именем нельзя залогинется, значит беда в пароле. Я давно не имел плотного общения с BSD системами, но на сколько это было раньше, BSD в файле /etc/passwd хранила и имя пользователя и криптованный пароль, а в Linuxe это разбили на два файла: /etc/passwd и /etc/shadow. Изменения файла passwd каснулись поля с паролем. Вместо него воткнули "*". А в файле shadow оставили только login и passwd, и еще несколько полей, касающихся времени жизни пароля.

Поэтому, на новой системе добавь тестового пользователя и посмотри, какие поля куда пишет система. Если есть разница в расположении полей, берешь расчестку, типа awk и собираешь нужные поля в кучу как надо.
 

stomotolog

New member
Регистрация
11.08.2005
Сообщения
29
Реакции
0
Баллы
1
Возраст
46
Местоположение
Москва
Вместо shadow в FreeBSD используется master.passwd .. формат такой же у него.... Видимо нельзя переносить пользователей... :-((( .... А С системы Linux на Linux кто-нить переносил когда нить пользователей?
С Уважением!
 

stomotolog

New member
Регистрация
11.08.2005
Сообщения
29
Реакции
0
Баллы
1
Возраст
46
Местоположение
Москва
Есчё один вопрос уважаемые ГУРУ...
Возможно ли поменять пароль пользователя из скрипта... пробовал разные команды так толком и не нашёл... нужно для того чтобы из скрипта создать пользователей и присвоить им пароли взятые из отдельного файла..
С Уважением!
Спасибо за любой ответ!!!

P.S. написал такой вот скриптик
#!/bin/sh

PASSWORD_FILE=/tmp/passwd_new
n=1
for name in ${awk `BEGIN={FS=":"} {print$1}` < "PASSWORD_FILE"}

do
echo "Users $n=$name"
let "n+=1"
pw groupadd -n $name
pw useradd -n $name -d /home/$name -g $name -G mail -s /sbin/nologin -w none
done

exit 0

Как теперь через этот скрипт задать пароль созданному пользователю...???
С Уважением!!
 
Последнее редактирование модератором:

enyuri

Active member
Регистрация
30.06.2005
Сообщения
162
Реакции
40
Баллы
28
Возраст
52
Местоположение
Москва
Попробуй так:
echo "clearpassword" | passwd --stdin $name

Если у тебя пароли уже криптованные, то пользуй или awk или sed для редактирования /etc/passwd. Только для начала не забудь сделать его копию! :)
А можно пользователя сразу с паролем добавлять. Для этого есть ключ "-p cryptpassword". cryptpassword можно получить так:
#/bin/bash
function getcryptpass() {
salt=`/usr/bin/uuidgen|dd bs=2 count=1 2>/dev/null`
test -n "${salt}" || report "problem generating password salt"
cryptpass=`echo "print crypt(\"${1}\",\"${salt}\")" | perl`
test -n "${cryptpass}" || report "problem generating encypted password"
}

pass=`dd bs=6 count=1 if=/dev/random 2>/dev/null |uuencode -m /tmp/1\`date +%s\`
2>/dev/null|grep -v "^====$"|grep -v "^begin-base64 664 "`
getcryptpass "${pass}"
echo $pass" "$cryptpass
 

stomotolog

New member
Регистрация
11.08.2005
Сообщения
29
Реакции
0
Баллы
1
Возраст
46
Местоположение
Москва
Уважаемый enyuri !!!
Не получается сменить пароль вот так......echo "clearpassword" | passwd --stdin $name...
По поводу cryptpass вообще ругается на строчку ...function getcryptpass() ...
Поразному пробовал писать даже так...
passwd $name | echo "123"
Не выходит каменный цветок....
С Уважением !!
Спасибо!!!
Будем искать!!
 

stomotolog

New member
Регистрация
11.08.2005
Сообщения
29
Реакции
0
Баллы
1
Возраст
46
Местоположение
Москва
Оказалось всё очень просто....

Спасибо всем огромное кто помогал!!!
А дело значит так.. разобрался наконец-то.. если конечно кому интересно пусть читает...
1) С помощью скрипта считываем пользователей и вносим их в базу данных пользователей (см. выше)
2) Так как у нас есть файлик уже криптованных паролей из Linux shadow... вырезаем опять же с помощью этого скрипта поле пароля что то типа $1$7g178...... бла бла бла.... вставляем это поле в файл master.passwd FreeBSD заместо * (звёздочки)
3) Выполняем команду pwd_mkdb...
И Всё .. пользователи могут спокойно заходить или получать почту!!!
С Уважением!!
Всем спасибо!!!
 
198 237Темы
635 209Сообщения
3 618 425Пользователи
Pandar96Новый пользователь
Верх