userPasswd из Ldap (мини вопрос :))

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

HRonik
Сообщения: 140
ОС: Debian

userPasswd из Ldap

Сообщение HRonik »

суть: нужно достать из базы Ldap атрибут userPasswd. Утилита Ldapsearch не возвращает этот атрибут. самописный скрипт на поиск тоже :)
Потому что атрибут системный..однако lam и простой webminовый браузеры атрибут могут достать.
вопрос: кто-нибудь знает как это сделать?Желательно на перле или на bash'е.
Заранее благодарю, мучаюсь не первый день :)
Спасибо сказали:
HRonik
Сообщения: 140
ОС: Debian

Re: userPasswd из Ldap

Сообщение HRonik »

Как лох...в общем я искал как с помощью:

Код: Выделить всё

$mesg = $ldap->search(
           base   => "",
                       filter => "",
               attrs => []
                     );

достать системный атрибут, то есть как дать команде рутовские права ?
можно обойтись и без него используя ldapsearch , но если кто знает подскажите :)
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: userPasswd из Ldap

Сообщение Ленивая Бестолочь »

ээээээ.
вот как сделано у меня:

Код: Выделить всё

manager3-r:/home/scri/bin# cat `which ldapsearchl`
#!/bin/sh
. ~/.ldaprcl
b=`echo "$1,$LDAP_BASE"|recode ..utf-8`
c=`echo "$2"|recode ..utf-8`
shift 2
ldapsearch $LDAP_OPTS -x -ZZ -h $LDAP_SERVER -D $LDAP_BINDDN -w $LDAP_BINDPW \
 -b "$b" "$c" $*|\
 ldifdec|recode utf-8

manager3-r:/home/scri/bin# cat ../.ldaprcl
LDAP_OPTS=-LLL
LDAP_SERVER=xxxx.spb.ru
LDAP_BASE="cn=Root"
LDAP_BINDDN="cn=admin,$LDAP_BASE"
LDAP_BINDPW=xxxxxx


все показывает
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
HRonik
Сообщения: 140
ОС: Debian

Re: userPasswd из Ldap

Сообщение HRonik »

Дык ldapsearch и у меня все показывает, просто я пытался сделать скриптом не зависящим от других скриптов :)
Кстате умеешь пароли расшифровывать? Я щас собираюсь этим заняться...Мне нужен файл получить из Лдапа где будет юзер и пароль :)
Пока все получается кроме расшифровки...
Спасибо сказали:
HRonik
Сообщения: 140
ОС: Debian

Re: userPasswd из Ldap

Сообщение HRonik »

Код: Выделить всё

#!/usr/bin/perl -w
use strict;
use Net::LDAP;
use Text::Iconv;
use MIME::Base64;
use Net::LDAP::Search;

my $DN='cn=root,dc=hronik,dc=ru';
my $pass='secret';
my $satrr=$ARGV[0];
my $converter = Text::Iconv->new('KOI8-R', 'UTF-8');
my $entry;my $mesg;
my $ctr = Text::Iconv->new('UTF-8','KOI8-R');
my $ldap = Net::LDAP->new( '127.0.0.1' );
my $attrs = [ 'cn','userPassword' ];
$mesg = $ldap->bind($DN,password =>$pass);

$mesg = $ldap->search(base => 'dc=hronik,dc=ru',
            filter => '&(|(gidNumber=10002)(gidNumber=10001))(objectClass=account)',
            attrs => $attrs );

    my $href = $mesg->as_struct; my @arrayOfDNs  = keys %$href;
    foreach ( @arrayOfDNs ) {
        my $attrName; my $valref = $$href{$_}; my @arrayOfAttrs = sort keys %$valref;
    foreach $attrName (@arrayOfAttrs) {
        next if ( $attrName =~ /;binary$/ );
    my $attrVal = @$valref{$attrName}; my $list=join(" ",@$attrVal);
    print $ctr->convert($list)," ";} print "\n";}
$mesg = $ldap->unbind;


вот так получилось, попробуй, по-моему лучше чем ldapsearch :)
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: userPasswd из Ldap

Сообщение Ленивая Бестолочь »

пасибо. )
вообще, если чесно, я в перле не очень. у меня мои скрипты, в которых не хочется использовать sh на php-cli сделаны.
там тоже довольно удобная работа с лдапом. но это в общем дело вкуса ).
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
iYang
Сообщения: 41
ОС: SuSE 10.3, 11.0

Re: userPasswd из Ldap

Сообщение iYang »

Пока все получается кроме расшифровки

Если хранится не криптованный пароль, а его хеш, то восстановить не удастся.
Спасибо сказали:
HRonik
Сообщения: 140
ОС: Debian

Re: userPasswd из Ldap

Сообщение HRonik »

iYang писал(а):
14.01.2008 16:24
Если хранится не криптованный пароль, а его хеш, то восстановить не удастся.

Криптованый, хотя я на время, что б заняться другими вопросами, просто храню не зашифрованные вопросы...однако вопрос не пропал:)
Как скриптом расшифровать пароль, допустим, записанный в файле :)???
Спасибо сказали: