通过bash脚本修改openLdap中的用户

通过bash脚本修改openLdap中的用户

您能帮我把这个命令放入 if 语句(bash 脚本)吗:

$ ldapmodify -D -h 密码:[输入密码] dn:cn=vipb,ou=groups,dc=example,dc=com changetype:修改添加:memberUid memberUid:fred

我尝试这样做,但是没有效果:

#!/bin/bash

if [ $1 = "blue" ] ; then
ldapmodify  -D "cn=admin,dc=blue,dc=com" -w "Blue123" dn:cn=Blue-group,ou=Blue,dc=blue,dc=com changetype: modify add: memberUid memberUid: testblue
fi

还尝试过这个:

/bin/bash #!/bin/bash

if [ $1 = "blue" ] ; then
        ldapmodify  -D "cn=admin,dc=blue,dc=com" -w "Blue123"
        dn:cn=Blue-group,ou=Blue,dc=blue,dc=com
        changetype: modify
        add: memberUid
        memberUid: testblue
fi

答案1

Shell 脚本不会模拟键盘输入;它们会启动程序并等待这些程序完成。ldapmodify 下面的行不会成为其输入,而是单独的命令。

如果您想为 ldapmodify 提供输入,您需要专门使用脚本语法来执行此操作 - 例如<<“heredoc”:

if [ $1 = "blue" ] ; then
    ldapmodify -D whatever -w whatever <<'END'
dn: cn=foo
add: member
member: cn=bar
END
fi

或者通过另一个命令进行管道传输:

if [ $1 = "blue" ] ; then
    (echo "dn: cn=foo"
    echo "add: member"
    echo "member: cn=bar") | ldapmodify -D whatever -w whatever
fi

相关内容