ACL's Curie

La 0 es para que los usuarios puedan escribir sus preguntas de seguridad.
Cada uno puede escribir el atributo pwmResponseSet.

{0}to attrs=pwmResponseSet by self write by dn="cn=admin,dc=interio
 r,dc=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,ou=grupos,dc=interi
 or,dc=udelar,dc=edu,dc=uy" write by * auth

Desde la 1 a la 5, hace que los administradores de cada regional puedan resetear la contraseña de los miembros de su regional.
Estan enlazadas por un break, para abarcar el caso en que un usuario pertenezca a varias regionales.

olcAccess: {1}to attrs=userPassword,shadowLastChange filter=(memberof=cn=cut,o
 u=grupos,dc=interior,dc=udelar,dc=edu,dc=uy) by self write by dn="cn=admin,dc
 =interior,dc=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,ou=grupos,d
 c=interior,dc=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,cn=cut,ou=
 grupos,dc=interior,dc=udelar,dc=edu,dc=uy" write by * break
olcAccess: {2}to attrs=userPassword,shadowLastChange filter=(memberof=cn=cure,
 ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy) by self write by dn="cn=admin,d
 c=interior,dc=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,ou=grupos,
 dc=interior,dc=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,cn=cure,o
 u=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" write by * break
olcAccess: {3}to attrs=userPassword,shadowLastChange filter=(memberof=cn=cur,o
 u=grupos,dc=interior,dc=udelar,dc=edu,dc=uy) by self write by dn="cn=admin,dc
 =interior,dc=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,ou=grupos,d
 c=interior,dc=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,cn=cur,ou=
 grupos,dc=interior,dc=udelar,dc=edu,dc=uy" write by * break
olcAccess: {4}to attrs=userPassword,shadowLastChange filter=(memberof=cn=cci,o
 u=grupos,dc=interior,dc=udelar,dc=edu,dc=uy) by self write by dn="cn=admin,dc
 =interior,dc=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,ou=grupos,d
 c=interior,dc=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,cn=cci,ou=
 grupos,dc=interior,dc=udelar,dc=edu,dc=uy" write by * break
olcAccess: {5}to attrs=userPassword,shadowLastChange filter=(memberof=cn=cup,o
 u=grupos,dc=interior,dc=udelar,dc=edu,dc=uy) by self write by dn="cn=admin,dc
 =interior,dc=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,ou=grupos,d
 c=interior,dc=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,cn=cup,ou=
 grupos,dc=interior,dc=udelar,dc=edu,dc=uy" write by * auth

La 6 es para que la contraseña solo la puedan cambiar los administradores, y cada unos pueda cambiar su contraseña.

olcAccess: {6}to attrs=userPassword,shadowLastChange by self write by dn="cn=a
 dmin,dc=interior,dc=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,ou=g
 rupos,dc=interior,dc=udelar,dc=edu,dc=uy" write by * auth

La 7 es para dar acceso de lectura a la base del arbol.

olcAccess: {7}to dn.base="" by anonymous none by * read

Desde la 8 a la 12, es para que cada administrador regional solo puede agregar o quitar usuarios solo a su sede. Escribir el atributo member.

olcAccess: {8}to dn.base="cn=cut,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" 
  attrs="member" by dn="cn=admin,dc=interior,dc=udelar,dc=edu,dc=uy" write by 
 group.exact="cn=admins,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" write by
  group.exact="cn=admins,cn=cut,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" 
 write by * auth
olcAccess: {9}to dn.base="cn=cure,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy
 " attrs="member" by dn="cn=admin,dc=interior,dc=udelar,dc=edu,dc=uy" write by
  group.exact="cn=admins,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" write b
 y group.exact="cn=admins,cn=cure,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy
 " write by * auth
olcAccess: {10}to dn.base="cn=cur,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" 
  attrs="member" by dn="cn=admin,dc=interior,dc=udelar,dc=edu,dc=uy" write by 
 group.exact="cn=admins,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" write by
  group.exact="cn=admins,cn=cur,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" 
 write by * auth
olcAccess: {11}to dn.base="cn=cci,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy
 " attrs="member" by dn="cn=admin,dc=interior,dc=udelar,dc=edu,dc=uy" write by
  group.exact="cn=admins,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" write b
 y group.exact="cn=admins,cn=cci,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" 
  write by * auth
olcAccess: {12}to dn.base="cn=cup,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy
 " attrs="member" by dn="cn=admin,dc=interior,dc=udelar,dc=edu,dc=uy" write by
  group.exact="cn=admins,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" write b
 y group.exact="cn=admins,cn=cup,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" 
  write by * auth

Desde la 13 a la 17, es para que la cuenta login que se utiliza para conectar los servicios al ldap, solo puedan ver a los miembros de su servicio.
Estan enlazadas por un break, para abarcar el caso en que un usuario tenga acceso a varios servicios.


olcAccess: {13}to filter=(&(objectclass=inetOrgPerson)(!(memberof=cn=sympa,ou=
 grupos,dc=interior,dc=udelar,dc=edu,dc=uy))) by dn="cn=login,cn=sympa,ou=grup
 os,dc=interior,dc=udelar,dc=edu,dc=uy" none by dn="cn=admin,dc=interior,dc=ud
 elar,dc=edu,dc=uy" write by group.exact="cn=admins,ou=grupos,dc=interior,dc=u
 delar,dc=edu,dc=uy" write by * break
olcAccess: {14}to filter=(&(objectclass=inetOrgPerson)(!(memberof=cn=zimbra,ou
 =grupos,dc=interior,dc=udelar,dc=edu,dc=uy))) by dn="cn=login,cn=zimbra,ou=gr
 upos,dc=interior,dc=udelar,dc=edu,dc=uy" none by dn="cn=admin,dc=interior,dc=
 udelar,dc=edu,dc=uy" write by group.exact="cn=admins,ou=grupos,dc=interior,dc
 =udelar,dc=edu,dc=uy" write by * break
olcAccess: {15}to filter=(&(objectclass=inetOrgPerson)(!(memberof=cn=openfire,
 ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy))) by dn="cn=login,cn=openfire,o
 u=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" none by dn="cn=admin,dc=interior
 ,dc=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,ou=grupos,dc=interio
 r,dc=udelar,dc=edu,dc=uy" write by * break
olcAccess: {16}to filter=(&(objectclass=inetOrgPerson)(!(memberof=cn=owncloud,
 ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy))) by dn="cn=login,cn=owncloud,o
 u=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" none by dn="cn=admin,dc=interior
 ,dc=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,ou=grupos,dc=interio
 r,dc=udelar,dc=edu,dc=uy" write by * break
olcAccess: {17}to filter=(&(objectclass=inetOrgPerson)(!(memberof=cn=redmine,o
 u=grupos,dc=interior,dc=udelar,dc=edu,dc=uy))) by dn="cn=login,cn=redmine,ou=
 grupos,dc=interior,dc=udelar,dc=edu,dc=uy" none by dn="cn=admin,dc=interior,d
 c=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,ou=grupos,dc=interior,
 dc=udelar,dc=edu,dc=uy" write by * read

Desde la 18 a la 20, es para que a los servicos owncloud, sympa y zimbra, solo los administradores de cada servicio, puedan dar acceso a los usuarios. Escribir el atributo member.

olcAccess: {18}to dn.base="cn=sympa,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=
 uy" attrs="member" by dn="cn=admin,dc=interior,dc=udelar,dc=edu,dc=uy" write 
 by group.exact="cn=admins,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" write
  by group.exact="cn=admins,cn=sympa,ou=grupos,dc=interior,dc=udelar,dc=edu,dc
 =uy" write by * auth
olcAccess: {19}to dn.base="cn=zimbra,ou=grupos,dc=interior,dc=udelar,dc=edu,dc
 =uy" attrs="member" by dn="cn=admin,dc=interior,dc=udelar,dc=edu,dc=uy" write
  by group.exact="cn=admins,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" writ
 e by group.exact="cn=admins,cn=zimbra,ou=grupos,dc=interior,dc=udelar,dc=edu,
 dc=uy" write by * auth
olcAccess: {20}to dn.base="cn=owncloud,ou=grupos,dc=interior,dc=udelar,dc=edu,
 dc=uy" attrs="member" by dn="cn=admin,dc=interior,dc=udelar,dc=edu,dc=uy" wri
 te by group.exact="cn=admins,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" wr
 ite by group.exact="cn=admins,cn=owncloud,ou=grupos,dc=interior,dc=udelar,dc=
 edu,dc=uy" write by * auth

La 21 y 22, es para los servicios openfire y redmine, los administradores y todos los administradores de cada regional puedan dar acceso a esos servicios. Escribir el atributo member.

olcAccess: {21}to dn.base="cn=openfire,ou=grupos,dc=interior,dc=udelar,dc=edu,
 dc=uy" attrs="member" by dn="cn=admin,dc=interior,dc=udelar,dc=edu,dc=uy" wri
 te by group.exact="cn=admins,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" wr
 ite by group.exact="cn=admins,cn=cup,ou=grupos,dc=interior,dc=udelar,dc=edu,d
 c=uy" write by group.exact="cn=admins,cn=cur,ou=grupos,dc=interior,dc=udelar,
 dc=edu,dc=uy" write by group.exact="cn=admins,cn=cure,ou=grupos,dc=interior,d
 c=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,cn=cut,ou=grupos,dc=in
 terior,dc=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,cn=cci,ou=grup
 os,dc=interior,dc=udelar,dc=edu,dc=uy" write by * auth
olcAccess: {22}to dn.base="cn=redmine,ou=grupos,dc=interior,dc=udelar,dc=edu,d
 c=uy" attrs="member" by dn="cn=admin,dc=interior,dc=udelar,dc=edu,dc=uy" writ
 e by group.exact="cn=admins,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" wri
 te by group.exact="cn=admins,cn=cup,ou=grupos,dc=interior,dc=udelar,dc=edu,dc
 =uy" write by group.exact="cn=admins,cn=cur,ou=grupos,dc=interior,dc=udelar,d
 c=edu,dc=uy" write by group.exact="cn=admins,cn=cure,ou=grupos,dc=interior,dc
 =udelar,dc=edu,dc=uy" write by group.exact="cn=admins,cn=cut,ou=grupos,dc=int
 erior,dc=udelar,dc=edu,dc=uy" write by group.exact="cn=admins,cn=cci,ou=grupo
 s,dc=interior,dc=udelar,dc=edu,dc=uy" write by * auth

La 23 es para dar acceso total sobre todo el arbol al usuario admin y los administradores, que los anónimos no puedan ver nada, y los demas leer.

olcAccess: {23}to * by dn="cn=admin,dc=interior,dc=udelar,dc=edu,dc=uy" write 
 by group.exact="cn=admins,ou=grupos,dc=interior,dc=udelar,dc=edu,dc=uy" write
  by anonymous none by * read

A continuación, puedes consultar las tareas de LDAP administración del LDAP