LINUX.ORG.RU
ФорумAdmin

перетаскивание пользователей с slackware на freebsd


0

0

возникла необходимость перетащить пользователей с slackware на freebsd. пользователей довольно много. как перетащить их всех? логины понятно, а вот пароли? может есть какие-нибудь варианты? Пользователи имеются ввиду почтовые и интернетовские. Все созданы стандартным adduser (squid настроен на авторизацию по пользователям системы)

anonymous

Re: перетаскивание пользователей с slackware на freebsd

формат хэшей одинаковый, засунуть из shadow в passwd
awk в помощь

hizel ★★★★★ ()

Re: перетаскивание пользователей с slackware на freebsd

Странно... Ни одного вопля про BSD RIP...

anonymous ()

Re: перетаскивание пользователей с slackware на freebsd

#!/usr/bin/perl
# Установите путь к интерпретатору bash на FreeBSD-машине (если он
# установлен), или же сделайте начальным командным интерпретатором /bin/csh
$newshell = "/bin/csh";
open (PASSWD,"/etc/passwd");
@passwd = <PASSWD>; # Прочесть файл /etc/passwd
close (PASSWD) ;
open (SHADOW,"/etc/shadow");
@shadow = <SHADOW>; # Прочесть файл /etc/shadow
close (SHADOW);
foreach $user (@shadow) {
@sdata = split(/:/,$user);
$passhash(@sdata[0]} = @sdata[l]; # Создать таблицу поиска по именам
# пользователей
}
foreach $user (gpasswd) {
@pdata = split(/:/,$user);
@pdata[6] = $newshell."\n" if (@pdata[6] eq "/bin/bash\n");
@pdata[l] = $passhash{@pdata[0]}; # Заменить "х" зашифрованным паролем

splice (@pdata,4 ,0 ,undef , "О" , "О") ; # Объединить лишние пустые поля
foreach (gpdata) { # Вывести окончательную строку
print " $_" ;
print ":" unless ($_ =~ /\n/) ;
}
}

Сделайте сценарий выполняемым и запустите с правами пользователя root в Linux-
системе, перенаправив вывод в файл: % ./mkpasswd.pl > new. master . passwd
Перенесите файл new.master.passwd на FreeBSD-машину и поместите в /etc
(pwd_mkdb не принимает данные из стандартного ввода или из файла в другом ка-
талоге). Откройте его в текстовом редакторе, а в другом окне - файл /etc/
master. passwd FreeBSD. Первый блок, примерно из 15 учетных записей, необходимо
откорректировать (это daemon, bin, news и другие системные псевдопользователи,
чьи идентификаторы в Linux и FreeBSD различны). Для этого скопируйте этот блок
из /etc/master.passwd и замените соответствующий блок в new.master.passwd.
Создайте резервную копию файла /etc/master.passwd. В заключение, запустите
pwd_mkdb для создания нового файла баз данных hash-паролей:
# pwd_mkdb -p /etc/new. master .passwd
Если команда завершится без ошибок, не выходите из системы. Необходимо про-
верить настройки, обладая правами root. Вы должны зарегистрироваться и открыть
новый терминальный сеанс. Если вы не сможете этого сделать, запустите команду
pwd_mkdb, указав в качестве параметра резервную копию файла, и базы данных
вернутся к предыдущему состоянию.

aspell ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.