1 |
# mandriva-dit-access.conf |
2 |
|
3 |
limits group="cn=LDAP Replicators,ou=System Groups,dc=mageia,dc=org" |
4 |
limit size=unlimited |
5 |
limit time=unlimited |
6 |
|
7 |
limits group="cn=LDAP Admins,ou=System Groups,dc=mageia,dc=org" |
8 |
limit size=unlimited |
9 |
limit time=unlimited |
10 |
|
11 |
limits group="cn=Account Admins,ou=System Groups,dc=mageia,dc=org" |
12 |
limit size=unlimited |
13 |
limit time=unlimited |
14 |
|
15 |
# so we don't have to add these to every other acl down there |
16 |
access to dn.subtree="dc=mageia,dc=org" |
17 |
by group.exact="cn=LDAP Admins,ou=System Groups,dc=mageia,dc=org" write |
18 |
by group.exact="cn=LDAP Replicators,ou=System Groups,dc=mageia,dc=org" read |
19 |
by * break |
20 |
|
21 |
# userPassword access |
22 |
# Allow account registration to write userPassword of unprivileged users accounts |
23 |
access to dn.subtree="ou=People,dc=mageia,dc=org" |
24 |
filter="(&(objectclass=inetOrgPerson)(!(objectclass=posixAccount)))" |
25 |
attrs=userPassword,pwdReset |
26 |
by group/groupOfNames/member.exact="cn=registrars,ou=system groups,dc=mageia,dc=org" +a |
27 |
by * +0 break |
28 |
|
29 |
# shadowLastChange is here because it needs to be writable by the user because |
30 |
# of pam_ldap, which will update this attr whenever the password is changed. |
31 |
# And this is done with the user's credentials |
32 |
access to dn.subtree="dc=mageia,dc=org" |
33 |
attrs=shadowLastChange |
34 |
by self write |
35 |
by group.exact="cn=Account Admins,ou=System Groups,dc=mageia,dc=org" write |
36 |
by * read |
37 |
access to dn.subtree="dc=mageia,dc=org" |
38 |
attrs=userPassword |
39 |
by group.exact="cn=Account Admins,ou=System Groups,dc=mageia,dc=org" write |
40 |
by self write |
41 |
by anonymous auth |
42 |
by * none |
43 |
|
44 |
# kerberos key access |
45 |
# "by auth" just in case... |
46 |
access to dn.subtree="dc=mageia,dc=org" |
47 |
attrs=krb5Key |
48 |
by self write |
49 |
by group.exact="cn=Account Admins,ou=System Groups,dc=mageia,dc=org" write |
50 |
by anonymous auth |
51 |
by * none |
52 |
|
53 |
# password policies |
54 |
access to dn.subtree="ou=Password Policies,dc=mageia,dc=org" |
55 |
by group.exact="cn=Account Admins,ou=System Groups,dc=mageia,dc=org" write |
56 |
by * read |
57 |
|
58 |
# samba password attributes |
59 |
# by self not strictly necessary, because samba uses its own admin user to |
60 |
# change the password on the user's behalf |
61 |
# openldap also doesn't auth on these attributes, but maybe some day it will |
62 |
access to dn.subtree="dc=mageia,dc=org" |
63 |
attrs=sambaLMPassword,sambaNTPassword |
64 |
by group.exact="cn=Account Admins,ou=System Groups,dc=mageia,dc=org" write |
65 |
by anonymous auth |
66 |
by self write |
67 |
by * none |
68 |
# password history attribute |
69 |
# pwdHistory is read-only, but ACL is simplier with it here |
70 |
access to dn.subtree="dc=mageia,dc=org" |
71 |
attrs=sambaPasswordHistory,pwdHistory |
72 |
by self read |
73 |
by group.exact="cn=Account Admins,ou=System Groups,dc=mageia,dc=org" write |
74 |
by * none |
75 |
|
76 |
# pwdReset, so the admin can force an user to change a password |
77 |
access to dn.subtree="dc=mageia,dc=org" |
78 |
attrs=pwdReset,pwdAccountLockedTime |
79 |
by group.exact="cn=Account Admins,ou=System Groups,dc=mageia,dc=org" write |
80 |
by * read |
81 |
|
82 |
# group owner can add/remove/edit members to groups |
83 |
access to dn.regex="^cn=[^,]+,ou=(System Groups|Group),dc=mageia,dc=org$" |
84 |
attrs=member |
85 |
by dnattr=owner write |
86 |
by users +sx |
87 |
|
88 |
access to dn.regex="^cn=[^,]+,ou=(System Groups|Group),dc=mageia,dc=org$" |
89 |
attrs=cn,description |
90 |
by users read |
91 |
|
92 |
# registration - allow registrar group to create basic unprivileged accounts |
93 |
access to dn.subtree="ou=People,dc=mageia,dc=org" |
94 |
attrs="objectClass" |
95 |
val="inetOrgperson" |
96 |
by group/groupOfNames/member.exact="cn=registrars,ou=system groups,dc=mageia,dc=org" =asrx |
97 |
by * +0 break |
98 |
|
99 |
access to dn.subtree="ou=People,dc=mageia,dc=org" |
100 |
filter="(!(objectclass=posixAccount))" |
101 |
attrs=cn,sn,gn,mail,entry,children,preferredLanguage |
102 |
by group/groupOfNames/member.exact="cn=registrars,ou=system groups,dc=mageia,dc=org" =asrx |
103 |
by * +0 break |
104 |
|
105 |
# let the user change some of his/her attributes |
106 |
access to dn.subtree="ou=People,dc=mageia,dc=org" |
107 |
attrs=carLicense,homePhone,homePostalAddress,mobile,pager,telephoneNumber,mail,preferredLanguage |
108 |
by self write |
109 |
by users +sx |
110 |
|
111 |
# create new accounts |
112 |
access to dn.regex="^([^,]+,)?ou=(People|Group|Hosts),dc=mageia,dc=org$" |
113 |
attrs=children,entry |
114 |
by group.exact="cn=Account Admins,ou=System Groups,dc=mageia,dc=org" write |
115 |
by * break |
116 |
# access to existing entries |
117 |
access to dn.regex="^[^,]+,ou=(People|Hosts|Group),dc=mageia,dc=org$" |
118 |
by group.exact="cn=Account Admins,ou=System Groups,dc=mageia,dc=org" write |
119 |
by * break |
120 |
|
121 |
# sambaDomainName entry |
122 |
access to dn.regex="^(sambaDomainName=[^,]+,)?dc=mageia,dc=org$" |
123 |
attrs=children,entry,@sambaDomain,@sambaUnixIdPool |
124 |
by group.exact="cn=Account Admins,ou=System Groups,dc=mageia,dc=org" write |
125 |
by * read |
126 |
|
127 |
# samba ID mapping |
128 |
access to dn.regex="^(sambaSID=[^,]+,)?ou=Idmap,dc=mageia,dc=org$" |
129 |
attrs=children,entry,@sambaIdmapEntry |
130 |
by group.exact="cn=Account Admins,ou=System Groups,dc=mageia,dc=org" write |
131 |
by group.exact="cn=IDMAP Admins,ou=System Groups,dc=mageia,dc=org" write |
132 |
by * read |
133 |
|
134 |
# global address book |
135 |
# XXX - which class(es) to use? |
136 |
access to dn.regex="^(.*,)?ou=Address Book,dc=mageia,dc=org" |
137 |
attrs=children,entry,@inetOrgPerson,@evolutionPerson,@evolutionPersonList |
138 |
by group.exact="cn=Address Book Admins,ou=System Groups,dc=mageia,dc=org" write |
139 |
by * read |
140 |
|
141 |
# dhcp entries |
142 |
# XXX - open up read access to anybody? |
143 |
access to dn.sub="ou=dhcp,dc=mageia,dc=org" |
144 |
attrs=children,entry,@dhcpService,@dhcpServer,@dhcpSharedNetwork,@dhcpSubnet,@dhcpPool,@dhcpGroup,@dhcpHost,@dhcpClass,@dhcpSubClass,@dhcpOptions,@dhcpLeases,@dhcpLog |
145 |
by group.exact="cn=DHCP Admins,ou=System Groups,dc=mageia,dc=org" write |
146 |
by group.exact="cn=DHCP Readers,ou=System Groups,dc=mageia,dc=org" read |
147 |
by * read |
148 |
|
149 |
# sudoers |
150 |
access to dn.regex="^([^,]+,)?ou=sudoers,dc=mageia,dc=org$" |
151 |
attrs=children,entry,@sudoRole |
152 |
by group.exact="cn=Sudo Admins,ou=System Groups,dc=mageia,dc=org" write |
153 |
by * read |
154 |
|
155 |
# dns |
156 |
access to dn="ou=dns,dc=mageia,dc=org" |
157 |
attrs=entry,@extensibleObject |
158 |
by group.exact="cn=DNS Admins,ou=System Groups,dc=mageia,dc=org" write |
159 |
by * read |
160 |
access to dn.sub="ou=dns,dc=mageia,dc=org" |
161 |
attrs=children,entry,@dNSZone |
162 |
by group.exact="cn=DNS Admins,ou=System Groups,dc=mageia,dc=org" write |
163 |
by group.exact="cn=DNS Readers,ou=System Groups,dc=mageia,dc=org" read |
164 |
by * none |
165 |
|
166 |
|
167 |
# MTA |
168 |
# XXX - what else can we add here? Virtual Domains? With which schema? |
169 |
access to dn.one="ou=People,dc=mageia,dc=org" |
170 |
attrs=@inetLocalMailRecipient,mail |
171 |
by group.exact="cn=MTA Admins,ou=System Groups,dc=mageia,dc=org" write |
172 |
by * read |
173 |
|
174 |
# KDE Configuration |
175 |
access to dn.sub="ou=KDEConfig,dc=mageia,dc=org" |
176 |
by group.exact="cn=KDEConfig Admins,ou=System Groups,dc=mageia,dc=org" write |
177 |
by * read |
178 |
|
179 |
# last one |
180 |
access to dn.subtree="dc=mageia,dc=org" attrs=entry,uid,cn |
181 |
by * read |
182 |
|