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 * break |
87 |
|
88 |
# registration - allow registrar group to create basic unprivileged accounts |
89 |
access to dn.subtree="ou=People,dc=mageia,dc=org" |
90 |
attrs="objectClass" |
91 |
val="inetOrgperson" |
92 |
by group/groupOfNames/member.exact="cn=registrars,ou=system groups,dc=mageia,dc=org" =asrx |
93 |
by * +0 break |
94 |
|
95 |
access to dn.subtree="ou=People,dc=mageia,dc=org" |
96 |
filter="(!(objectclass=posixAccount))" |
97 |
attrs=cn,sn,gn,mail,entry,children,preferredLanguage |
98 |
by group/groupOfNames/member.exact="cn=registrars,ou=system groups,dc=mageia,dc=org" =asx |
99 |
by * +0 break |
100 |
|
101 |
# let the user change some of his/her attributes |
102 |
access to dn.subtree="ou=People,dc=mageia,dc=org" |
103 |
attrs=carLicense,homePhone,homePostalAddress,mobile,pager,telephoneNumber,mail,preferredLanguage |
104 |
by self write |
105 |
by * +0 break |
106 |
|
107 |
# create new accounts |
108 |
access to dn.regex="^([^,]+,)?ou=(People|Group|Hosts),dc=mageia,dc=org$" |
109 |
attrs=children,entry |
110 |
by group.exact="cn=Account Admins,ou=System Groups,dc=mageia,dc=org" write |
111 |
by * break |
112 |
# access to existing entries |
113 |
access to dn.regex="^[^,]+,ou=(People|Hosts|Group),dc=mageia,dc=org$" |
114 |
by group.exact="cn=Account Admins,ou=System Groups,dc=mageia,dc=org" write |
115 |
by * break |
116 |
|
117 |
# sambaDomainName entry |
118 |
access to dn.regex="^(sambaDomainName=[^,]+,)?dc=mageia,dc=org$" |
119 |
attrs=children,entry,@sambaDomain,@sambaUnixIdPool |
120 |
by group.exact="cn=Account Admins,ou=System Groups,dc=mageia,dc=org" write |
121 |
by * read |
122 |
|
123 |
# samba ID mapping |
124 |
access to dn.regex="^(sambaSID=[^,]+,)?ou=Idmap,dc=mageia,dc=org$" |
125 |
attrs=children,entry,@sambaIdmapEntry |
126 |
by group.exact="cn=Account Admins,ou=System Groups,dc=mageia,dc=org" write |
127 |
by group.exact="cn=IDMAP Admins,ou=System Groups,dc=mageia,dc=org" write |
128 |
by * read |
129 |
|
130 |
# global address book |
131 |
# XXX - which class(es) to use? |
132 |
access to dn.regex="^(.*,)?ou=Address Book,dc=mageia,dc=org" |
133 |
attrs=children,entry,@inetOrgPerson,@evolutionPerson,@evolutionPersonList |
134 |
by group.exact="cn=Address Book Admins,ou=System Groups,dc=mageia,dc=org" write |
135 |
by * read |
136 |
|
137 |
# dhcp entries |
138 |
# XXX - open up read access to anybody? |
139 |
access to dn.sub="ou=dhcp,dc=mageia,dc=org" |
140 |
attrs=children,entry,@dhcpService,@dhcpServer,@dhcpSharedNetwork,@dhcpSubnet,@dhcpPool,@dhcpGroup,@dhcpHost,@dhcpClass,@dhcpSubClass,@dhcpOptions,@dhcpLeases,@dhcpLog |
141 |
by group.exact="cn=DHCP Admins,ou=System Groups,dc=mageia,dc=org" write |
142 |
by group.exact="cn=DHCP Readers,ou=System Groups,dc=mageia,dc=org" read |
143 |
by * read |
144 |
|
145 |
# sudoers |
146 |
access to dn.regex="^([^,]+,)?ou=sudoers,dc=mageia,dc=org$" |
147 |
attrs=children,entry,@sudoRole |
148 |
by group.exact="cn=Sudo Admins,ou=System Groups,dc=mageia,dc=org" write |
149 |
by * read |
150 |
|
151 |
# dns |
152 |
access to dn="ou=dns,dc=mageia,dc=org" |
153 |
attrs=entry,@extensibleObject |
154 |
by group.exact="cn=DNS Admins,ou=System Groups,dc=mageia,dc=org" write |
155 |
by * read |
156 |
access to dn.sub="ou=dns,dc=mageia,dc=org" |
157 |
attrs=children,entry,@dNSZone |
158 |
by group.exact="cn=DNS Admins,ou=System Groups,dc=mageia,dc=org" write |
159 |
by group.exact="cn=DNS Readers,ou=System Groups,dc=mageia,dc=org" read |
160 |
by * none |
161 |
|
162 |
|
163 |
# MTA |
164 |
# XXX - what else can we add here? Virtual Domains? With which schema? |
165 |
access to dn.one="ou=People,dc=mageia,dc=org" |
166 |
attrs=@inetLocalMailRecipient,mail |
167 |
by group.exact="cn=MTA Admins,ou=System Groups,dc=mageia,dc=org" write |
168 |
by * read |
169 |
|
170 |
# KDE Configuration |
171 |
access to dn.sub="ou=KDEConfig,dc=mageia,dc=org" |
172 |
by group.exact="cn=KDEConfig Admins,ou=System Groups,dc=mageia,dc=org" write |
173 |
by * read |
174 |
|
175 |
# last one |
176 |
access to dn.subtree="dc=mageia,dc=org" attrs=entry,uid,cn |
177 |
by * read |
178 |
|