| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Системное программирование > Perl - не могу совладать с crypt |
| Автор: tooncheg 18.3.2015, 18:25 |
| #!/usr/bin/perl -w open (PASSWD, '~./passwd.mig5') or die $!; my @users; while (<PASSWD>) { chomp; next if /^\s*#/; # ignore comments my @f = split /:/, $_; my %hash; @hash{'username','password','uid','gid','gecos','home','shell'} = @f; push @users, \%hash; } foreach my $user (@users) { print crypt ("test8", "\$6\$");//так он его создает но не могу передать его в вызываемую программу system("useradd -m -s $user->{shell} -p ????????? $user->{username}"); } Задача перенести из файла passwd пользователей и дать им пароли, которые имеются в отдельном файлике в не зашифрованном виде. но проблема возникла, надо в useradd пароль передавать в уже зашифрованном виде. не получается и я не понимаю что ему нужно. Не могу передать его в вызываемую программу |
| Автор: tzirechnoy 18.3.2015, 20:58 |
| Я не понял, в каком месте Вы споткнулись (в чём в настоящий момент у Вас проблема), но лучшэ используйте какой-нибудь ужэ существующий chpasswd. |
| Автор: alezzz 18.3.2015, 21:20 |
| А зачем crypt выводите print-ом? Сохраняйте в переменную и передавайте в system вместо знаков вопроса. |
| Автор: tooncheg 19.3.2015, 08:41 |
| perl давно не открывал. в общем я записал в переменную результат crypt в цикл foreach и не срабатывало ничего. вынес из цикла и все заработало. |
| Автор: tzirechnoy 19.3.2015, 11:35 |
| "Полный крах всех надежд, шесть букв, вторая "и" |