patches for smbldap-tools-0.9.5 and etc

узелок на память :)
 
+
-
edit
 

HolyBoy

аксакал


Для русификации gecos из nic.schema программы net-nds/openldap-2.3.43:
code text
  1. --- nis.schema.orig     2009-02-23 14:37:35.000000000 +0300
  2. +++ nis.schema  2009-02-23 14:38:57.000000000 +0300
  3. @@ -48,9 +48,9 @@
  4.  
  5.  attributetype ( 1.3.6.1.1.1.1.2 NAME 'gecos'
  6.         DESC 'The GECOS field; the common name'
  7. -       EQUALITY caseIgnoreIA5Match
  8. -       SUBSTR caseIgnoreIA5SubstringsMatch
  9. -       SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
  10. +       EQUALITY caseIgnoreMatch
  11. +       SUBSTR caseIgnoreSubstringsMatch
  12. +       SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
  13.  
  14.  attributetype ( 1.3.6.1.1.1.1.3 NAME 'homeDirectory'
  15.         DESC 'The absolute path to the home directory'
Данная модификация противоречит RFC2307. Это означает, что если Вы используете программы, не умеющие работать с UTF-8 и использующие gecos, то вам надо следить за тем, чтобы символы из этого атрибута входили только в множество символов ASCII.

Для корректной работы smbldap-tools в юникодной среде необходимо применить следущий патч:
code text
  1. --- ./smbldap_tools.pm.orig     2009-02-23 20:09:47.000000000 +0300
  2. +++ /usr/sbin/smbldap_tools.pm  2009-02-23 20:24:04.000000000 +0300
  3. @@ -1213,7 +1213,7 @@
  4.  
  5.      return to_utf8(
  6.          -string  => $arg,
  7. -        -charset => 'ISO-8859-1',
  8. +        -charset => 'utf8',
  9.      );
  10.  }
  11.  
  12. @@ -1222,7 +1222,7 @@
  13.  
  14.      return from_utf8(
  15.          -string  => $arg,
  16. -        -charset => 'ISO-8859-1',
  17. +        -charset => 'utf8',
  18.      );
  19.  }
Теперь, добавление и редактирование свойств пользователей с помощью smbldap-useradd и smbldap-usermod может вестись с использованием в т.ч. кириллицы. Дискуссию по этому поводу можно посмотреть тут: Кодирование-декодирование в UTF-8

Патчи ниже исправляют порядок следования Имени Фамилии на Фамилию Имя Отчество в атрибуте cn и displayname, как это принято в русском языке:
code text
  1. --- ./smbldap-useradd.orig      2009-02-23 18:22:05.000000000 +0300
  2. +++ /usr/sbin/smbldap-useradd   2009-02-23 20:28:35.000000000 +0300
  3. @@ -281,7 +281,7 @@
  4.  $givenName = ( utf8Encode( $Options{'N'} ) || $userName );
  5.  $userSN    = ( utf8Encode( $Options{'S'} ) || $userName );
  6.  if ( $Options{'N'} and $Options{'S'} ) {
  7. -    $displayName = $userCN = "$givenName" . " $userSN";
  8. +    $displayName = $userCN = "$userSN" . " $givenName";
  9.  }
  10.  else {
  11.      $displayName = $userCN = $userName;


code text
  1. --- ./smbldap-usermod.orig      2009-02-23 19:20:13.000000000 +0300
  2. +++ /usr/sbin/smbldap-usermod   2009-02-23 20:29:31.000000000 +0300
  3. @@ -337,8 +337,8 @@
  4.  # if givenName eq sn eq username (default of smbldap-useradd), cn and displayName would
  5.  # be "username username". So we just append surname if its not default
  6.  # (there may be the very very special case of an user where those three values _are_ equal)
  7. -    $cn = "$Options{'N'}";
  8. -    $cn .= " " . $Options{'S'}
  9. +    $cn = "$Options{'S'}";
  10. +    $cn .= " " . $Options{'N'}
  11.        unless ( $Options{'S'} eq $Options{'N'} and $Options{'N'} eq $user );
  12.      my $push_val = utf8Encode($cn);
  13.      push( @mods, 'cn' => $push_val );


Часть этих исправлений указана мною в вики Samba в режиме PDC с использованием LDAP — Gentoo Linux Wiki . Поскольку к вики доверия нет, то лучше уж тут пусть будет ещё одна копия, да ещё и более полная.
 
+
-
edit
 

HolyBoy

аксакал


Для net-nds/smbldap-tools-0.9.6 достаточно только поменять nic.schema так, как сказано и изменить порядок следования фамилии и имени с отчеством в соответствующих скриптах. Трогать /usr/sbin/smbldap_tools.pm уже не надо.
 

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru