This file is indexed.

/usr/share/dirsrv/updates/20betxn.pl is in 389-ds-base 1.3.4.9-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
use Mozilla::LDAP::Conn;
use Mozilla::LDAP::Utils qw(normalizeDN);
use Mozilla::LDAP::API qw(:constant ldap_url_parse ldap_explode_dn);

sub runinst {
    my ($inf, $inst, $dseldif, $conn) = @_;

    my @errs;
    my $ldapifile;

    # Turn on nsslapd-pluginbetxn for 
    #     cn=Multimaster Replication Plugin
    #     cn=Roles Plugin,cn=plugins,cn=config
    #     cn=USN,cn=plugins,cn=config
    #     cn=Retro Changelog Plugin,cn=plugins,cn=config
    my @objplugins = (
        "cn=Multimaster Replication Plugin,cn=plugins,cn=config",
        "cn=Roles Plugin,cn=plugins,cn=config",
        "cn=USN,cn=plugins,cn=config",
        "cn=Retro Changelog Plugin,cn=plugins,cn=config"
    );
    foreach my $plugin (@objplugins) {
        my $ent = $conn->search($plugin, "base", "(cn=*)");
        if (!$ent) {
            return ('error_finding_config_entry', $plugin, $conn->getErrorString());
        }
        $ent->setValues('nsslapd-pluginbetxn', "on");
        $conn->update($ent);
    }

    # Set betxnpreoperation to nsslapd-plugintype for 
    #     cn=7-bit check,cn=plugins,cn=config
    #     cn=attribute uniqueness,cn=plugins,cn=config
    #     cn=Auto Membership Plugin,cn=plugins,cn=config
    #     cn=Linked Attributes,cn=plugins,cn=config
    #     cn=Managed Entries,cn=plugins,cn=config
    #     cn=PAM Pass Through Auth,cn=plugins,cn=config
    @preplugins = (
          "cn=7-bit check,cn=plugins,cn=config",
          "cn=attribute uniqueness,cn=plugins,cn=config",
          "cn=Auto Membership Plugin,cn=plugins,cn=config",
          "cn=Linked Attributes,cn=plugins,cn=config",
          "cn=Managed Entries,cn=plugins,cn=config",
          "cn=PAM Pass Through Auth,cn=plugins,cn=config"
    );
    foreach my $plugin (@preplugins) {
        my $ent = $conn->search($plugin, "base", "(cn=*)");
        if (!$ent) {
            return ('error_finding_config_entry', $plugin, $conn->getErrorString());
        }
        $ent->setValues('nsslapd-pluginType', "betxnpreoperation");
        $conn->update($ent);
    }

    # Set betxnpostoperation to nsslapd-plugintype for 
    #     cn=MemberOf Plugin,cn=plugins,cn=config
    #     cn=referential integrity postoperation,cn=plugins,cn=config
    #     cn=State Change Plugin,cn=plugins,cn=config
    @postplugins = (
          "cn=MemberOf Plugin,cn=plugins,cn=config",
          "cn=referential integrity postoperation,cn=plugins,cn=config",
          "cn=State Change Plugin,cn=plugins,cn=config"
    );
    foreach my $plugin (@postplugins) {
        my $ent = $conn->search($plugin, "base", "(cn=*)");
        if (!$ent) {
            return ('error_finding_config_entry', $plugin, $conn->getErrorString());
        }
        $ent->setValues('nsslapd-pluginType', "betxnpostoperation");
        $conn->update($ent);
    }

    return ();
}