免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2469 | 回复: 4
打印 上一主题 下一主题

请教一个简单的变量组合{已解决} [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-11 15:11 |只看该作者 |倒序浏览
因为没有学过perl脚本。但是实际工作需要写一个简单的脚本情大家帮忙哈

我有一个perl的脚本是用来修改LDAP数据库的
但是其中有一个键值需要改写但是原有脚本没有。
我本来测试这样填写
add => [mail => "$user\@abc.com"],
看起来一切正常。但是在select的时候无法找到mail的属性值请问这个地方应该如何填写我需要是user的mail

其实就是吧@符号脱意!
谢谢!

[ 本帖最后由 真少少 于 2007-9-11 19:00 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-09-11 15:17 |只看该作者
不知道你那个变量怎么定义的,如果
%info = (add => [mail => "$user\@abc.com"]);
那么用$info{add}->[1]能取到"$user\@abc.com"
你改成
%info = (add => {mail => "$user\@abc.com"});
的话,可以用$info{add}->[mail]

论坛徽章:
0
3 [报告]
发表于 2007-09-11 15:33 |只看该作者
这个脚本不适我写的是samba里面的一个脚本。但是没有mail的属性值。我需要添加一个。但是如果我用管理工具添加进去的时候这个属性值好用。如果用脚本按照我那个方式写入就不行脚本如下其中2个属性是我添加的!


my $dn= $user_entry->dn();

my $tmp;
my @mods;
my @dels;
if (defined($tmp = $Options{'a'})) {
  # Let's connect to the directory first
  my $winmagic = 2147483647;
  my $valpwdcanchange = 0;
  my $valpwdmustchange = $winmagic;
  my $valpwdlastset = 0;
  my $valacctflags = "[UX]";
  my $user_entry=read_user_entry($user);
  my $uidNumber = $user_entry->get_value('uidNumber');
  my $userRid = 2 * $uidNumber + 1000;
  my $email = '@abc.com';
  my $mail = "$user$email";
  # apply changes
  my $modify = $ldap_master->modify ( "$dn",
                                      changes => [
                                                  add => [objectClass => 'sambaSAMAccount'],
                                                  add => [objectClass => 'qmailUser'],
                                                  add => [sambaPwdLastSet => "$valpwdlastset"],
                                                  add => [sambaLogonTime => '0'],
                                                  add => [sambaLogoffTime => '2147483647'],
                                                  add => [sambaKickoffTime => '2147483647'],
                                                  add => [sambaPwdCanChange => "$valpwdcanchange"],
                                                  add => [sambaPwdMustChange => "$valpwdmustchange"],
                                                  add => [displayName => "$displayname"],
                                                  add => [sambaSID=> "$config{SID}-$userRid"],
                                                  add => [mail => "$mail"],
                                                  add => [sambaAcctFlags => "$valacctflags"],
                                                  add => [qmailGID => "$uidNumber"],
                                                  add => [qmailUID => "$uidNumber"],
                                                 ]
                                    );
  $modify->code && warn "failed to modify entry: ", $modify->error ;

论坛徽章:
0
4 [报告]
发表于 2007-09-11 15:49 |只看该作者
Net::LDAP ?文档里应该有吧

论坛徽章:
0
5 [报告]
发表于 2007-09-11 18:59 |只看该作者
Sorry
这个bug是LDAP的schema 和qmail schema 兼容性bug 我写了2个循环顺次执行就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP