Aquesta aplicació és un plugin de Gosa i requereix les següents aplicacions:
El fitxer control de paquet indica les següents dependències:
php5-cli, php-fpdf, apg, gosa
NOTA: Abans l'aplicació depenia de Imagick, ara crec que no però falta acabar-ho de comprovar
Es necessiten dos esquemes Ldap per tal de fer funcionar correctament el plugin Highschoolusers:
El schema iris s'ha obtingut de:
http://www.rediris.es/ldap/schema/iris.schema
I té les següents dependències:
# Depends upon # # attrs: description, mail (core.schema) # RFC-2256 A Summary of the X.500(96) User Schema for use with LDAPv3 # # attrs: commonName (cosine.schema) # RFC-1274 The COSINE and Internet X.500 Schema # # attrs: ipHostNumber (nis.schema) # RFC-2307 An Approach for Using LDAP as a Network Information Service
És a dir que cal tenir instal·lats els schemas:
Vegeu també Gosa schemas.
Cal?:
$ sudo make applygosapatch
Sembla que dona l'error:
Highschoolusers#End_save_object.28.29_at_class_highschooluser.inc_Fatal_error:_Call_to_undefined_method_stdClass::set_acl_base.28.29
si no és fa. La solució temporal:
$ sudo patch -p0 --directory=/ -i /usr/share/gosa-highschoolusers/patchs/gosa.patch
Evitar l'error:
Fatal error: Class name must be a valid object or a string in /usr/share/gosa/include/functions.inc on line 2889
Posant:
passwordDefaultHash="sha"
O un de correcte
Consulteu:
Highschoolusers#Fatal_error:_Class_name_must_be_a_valid_object_or_a_string_in_.2Fusr.2Fshare.2Fgosa.2Finclude.2Ffunctions.inc_on_line_2889
IMPORTANT: El promea està en install-gosa que no posa cap mètode a passwordDefaultHash
passwordDefaultHash=""
Per instal·lar aquest paquet cal afegir el següent repositori al fitxer /etc/apt/sources.list:
$ sudo joe /etc/apt/sources.list ... deb http://www.iesebre.com/ubuntu/custompackages ./
Per evitar els avisos de que el repositori no està autenticat executeu:
$ wget -q http://www.iesebre.com/ubuntu/custompackages/iesebre.asc -O- | sudo apt-key add -
Requeriments
El procés més net i més segur per a procedir a la instal·lació de Highschoolusers és prèviament instal·lar install-gosa:
$ sudo apt-get update && sudo apt-get install install-gosa
$ sudo install-gosa -v
Un cop instal·lats els requeriments executeu:
$ sudo apt-get update && sudo apt-get install gosa-highschoolusers
Mitjançant un script de post instal·lació (postinst) el paquet gosa-highschoolusers no només instal·la el plugin per a Gosa sinó que a més el configura. La configuració consisteix en:
Els fitxers instal·lats són (--acacha (discussió) 10:54, 23 jul 2012 (CEST)):
$ dpkg -L gosa-highschoolusers /. /usr /usr/share /usr/share/gosa-highschoolusers /usr/share/gosa-highschoolusers/patchs /usr/share/gosa-highschoolusers/patchs/fpdf.patch /usr/share/gosa-highschoolusers/patchs/gosa.patch /usr/share/gosa-highschoolusers/scripts /usr/share/gosa-highschoolusers/scripts/convert_to_ldif.sh /usr/share/php /usr/share/php/gosa-highschoolusers /usr/share/php/gosa-highschoolusers/modifyGosaparameters.php /usr/share/php/gosa-highschoolusers/add_schemas.php /usr/share/php/gosa-highschoolusers/add_plugin.php /usr/share/doc /usr/share/doc/gosa-highschoolusers /usr/share/doc/gosa-highschoolusers/changelog.Debian.gz /usr/share/doc/gosa-highschoolusers/copyright /usr/share/doc/gosa-highschoolusers/TODO /usr/share/doc/gosa-highschoolusers/ldap_schemas /usr/share/doc/gosa-highschoolusers/ldap_schemas/nis.ldif.gz /usr/share/doc/gosa-highschoolusers/ldap_schemas/iris.ldif.gz /usr/share/doc/gosa-highschoolusers/ldap_schemas/cosine.schema.gz /usr/share/doc/gosa-highschoolusers/ldap_schemas/nis.schema.gz /usr/share/doc/gosa-highschoolusers/ldap_schemas/iris.schema.gz /usr/share/doc/gosa-highschoolusers/ldap_schemas/highschooluser.ldif /usr/share/doc/gosa-highschoolusers/ldap_schemas/highschooluser.schema.gz /usr/share/doc/gosa-highschoolusers/ldap_schemas/cosine.ldif.gz /usr/share/doc/gosa-highschoolusers/README /usr/share/gosa /usr/share/gosa/html /usr/share/gosa/html/pdfreports /usr/share/gosa/html/pdfreports/enrollment.php /usr/share/gosa/html/pdfreports/images /usr/share/gosa/html/pdfreports/images/logo1.jpeg /usr/share/gosa/html/pdfreports/images/signature.jpeg /usr/share/gosa/html/include /usr/share/gosa/html/include/highschoolusers_validations.js /usr/share/gosa/html/plugins /usr/share/gosa/html/plugins/highschoolusers /usr/share/gosa/html/plugins/highschoolusers/images /usr/share/gosa/html/plugins/highschoolusers/images/pdficon.jpeg /usr/share/gosa/plugins /usr/share/gosa/plugins/personal /usr/share/gosa/plugins/personal/highschoolgeneric /usr/share/gosa/plugins/personal/highschoolgeneric/class_highschooluser.inc /usr/share/gosa/plugins/personal/highschoolgeneric/highschoolusergeneric.tpl /usr/share/gosa/plugins/admin /usr/share/gosa/plugins/admin/HighSchoolUsers /usr/share/gosa/plugins/admin/HighSchoolUsers/templatize.tpl /usr/share/gosa/plugins/admin/HighSchoolUsers/functions.php /usr/share/gosa/plugins/admin/HighSchoolUsers/highschooluser-list.tpl /usr/share/gosa/plugins/admin/HighSchoolUsers/highschooluser-filter.xml /usr/share/gosa/plugins/admin/HighSchoolUsers/main.inc /usr/share/gosa/plugins/admin/HighSchoolUsers/user_template.tpl /usr/share/gosa/plugins/admin/HighSchoolUsers/class_HighSchoolUsertabs.inc /usr/share/gosa/plugins/admin/HighSchoolUsers/password.tpl /usr/share/gosa/plugins/admin/HighSchoolUsers/highschooluser-list.xml /usr/share/gosa/plugins/admin/HighSchoolUsers/class_HighSchoolUserManagement.inc /usr/sbin /usr/sbin/install-highschoolusers-extraldaptree /usr/sbin/install-highschoolusers-baseldaptree /etc /etc/gosa-highschoolusers /etc/gosa-highschoolusers/gosa-highschoolusers.conf.sample
NOTA: Aquests passos són obsolets. Vegeu l'apartat anterior per tal de consultar els passos adients epr a fer la instal·lació
Passos seguits a l'institut d'Amposta:
Primer instal·lar Gosa 2.7.1 (--acacha 17:56, 27 juny 2011 (UTC)) i configurar el fitxer gosa.conf amb l'assistent.
Ara cal descarregar el codi font de subversion:
$ cd $ mkdir HIGHSCHOOLUSERS && cd HIGHSCHOOLUSERS $ sudo apt-get install subversion $ svn co http://www.iesebre.com/subversion/projectes/gosa-highschoolusers/
Entreu a la versió principal:
$ cd highschoolusers/trunk
Primer cal aplicar el pegat dels fitxers de gosa:
$ sudo make applygosapatch
Instal·lar les dependències (FPDF):
$ sudo make install install_dependencies
Aplicar el pegat a FPDF:
$ sudo make applyfpdfpatch
Instal·lar el esquema:
$ sudo make install_schema
Instal·lar l'aplicació i actualitzar gosa:
$ sudo make install $ sudo make update
Instal·lar el plugin al fitxer de configuració gosa.conf:
$ sudo make add_plugin
Ara cal crear les plantilles i seguir els passos de l'apartat configuració
Instal·la l'arbre Ldap base per a fer funcionar correctament gosa-highschoolusers:
Bàsicament s'instal·len els objectes:
dn: ${HIGHSCHOOLUSERS_CONF_DN},${INSTITUTION_BASE_DN} objectClass: organizationalUnit objectClass: top ou: ${HIGHSCHOOLUSERS_STRING} dn: academicPeriod=${ACADEMIC_PERIOD},${HIGHSCHOOLUSERS_CONF_DN},${INSTITUTION_BASE_DN} objectClass: highSchoolUsersConfig objectClass: top academicPeriod: ${ACADEMIC_PERIOD} nextInternalId: ${INITIAL_HIGHSCHOOLUSERS_INTERNAL_ID} studentTemplateDN: ${HIGHSCHOOLUSERS_STUDENT_TEMPLATE_CONF_DN},${INSTITUTION_BASE_DN} teacherTemplateDN: ${HIGHSCHOOLUSERS_TEACHER_TEMPLATE_CONF_DN},${INSTITUTION_BASE_DN}
Per exemple:
dn: ou=highschoolusers,ou=gosa,ou=configs,ou=systems,dc=iesebre,dc=com objectClass: organizationalUnit objectClass: top ou: highschoolusers dn: academicPeriod=2012-13,ou=highschoolusers,ou=gosa,ou=configs,ou=systems,dc=iesebre,dc=com objectClass: highSchoolUsersConfig objectClass: top academicPeriod: 2012-13 nextInternalId: 1 studentTemplateDN: cn=newStudent,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com teacherTemplateDN: cn=newTeacher,ou=people,ou=Profes,ou=All,dc=iesebre,dc=com
NOTA: També es crea l'objecte:
ou=gosa,ou=configs,ou=systems
NOTA: ... necessari com a base de la resta d'objectes. Aquest objecte es crea al entrar per primer cop a Gosa i per això segons quan s'executi l'script pot ser necessari crear-lo
On les dades s'agafen dels fitxers:
/etc/install-gosa/install-gosa.conf /etc/openfpnet/openfpnet.conf
En aquest ordre de preferència.
El codi és el següent:
#!/bin/bash if [[ $EUID -ne 0 ]]; then echo "This script must be run as root" 1>&2 exit 1 fi #PACKAGES DEPENDENCIES PACKAGES_DEPENDENCIES="ldap-utils" HIGHSCHOOLUSERS_PACKAGE="gosa-highschoolusers" HIGHSCHOOLUSERS_STRING="highschoolusers" #CONFIG FILES HIGHSCHOOLUSERS_CONF_FILE="/etc/${HIGHSCHOOLUSERS_PACKAGE}/${HIGHSCHOOLUSERS_PACKAGE}.conf" INSTALL_GOSA_CONF_FILE="/etc/install-gosa/install-gosa.conf" OPENFPNET_CONF_FILE="/etc/openfpnet/openfpnet.conf" #INSTITUTION INSTITUTION_DOMAIN="nodomain.com" #INSTITUTION_BASE_DN="dc=nodomain,dc=com" #HIGHSCHOOLUSERS ACADEMIC_PERIOD="2011-2012" INITIAL_HIGHSCHOOLUSERS_INTERNAL_ID="1" GOSA_CONF_DN="ou=gosa,ou=configs,ou=systems" HIGHSCHOOLUSERS_CONF_DN="ou=${HIGHSCHOOLUSERS_STRING},${GOSA_CONF_DN}" HIGHSCHOOLUSERS_STUDENT_TEMPLATE_CONF_DN="cn=newStudent,ou=people,ou=students" HIGHSCHOOLUSERS_TEACHER_TEMPLATE_CONF_DN="cn=newTeacher,ou=people,ou=teachers" while getopts ":v" opt; do case $opt in v) echo "-v was triggered. MODE VERBOSE activated!" VERBOSE=true; ;; \?) echo "Invalid option: -$OPTARG" >&2 exit 1 ;; :) echo "Option -$OPTARG requires an argument." >&2 exit 1 ;; esac done if [ -f ${OPENFPNET_CONF_FILE} ];then . ${OPENFPNET_CONF_FILE} fi [ ! -z "$VERBOSE" ] && echo -n "Checking if file ${INSTALL_GOSA_CONF_FILE} exists..." if [ -f ${INSTALL_GOSA_CONF_FILE} ];then [ ! -z "$VERBOSE" ] && echo " YES!" [ ! -z "$VERBOSE" ] && echo " Overwriting default values..." . ${INSTALL_GOSA_CONF_FILE} fi [ ! -z "$VERBOSE" ] && echo -n "Checking if file ${HIGHSCHOOLUSERS_CONF_FILE} exists..." if [ -f ${HIGHSCHOOLUSERS_CONF_FILE} ];then [ ! -z "$VERBOSE" ] && echo " YES!" [ ! -z "$VERBOSE" ] && echo " Overwriting default values..." . ${HIGHSCHOOLUSERS_CONF_FILE} fi [ ! -z "$VERBOSE" ] && echo "Calculating INSTITUTION_BASE_DN for DOMAIN: $INSTITUTION_DOMAIN..." DOMAIN_SPACES=$(echo $INSTITUTION_DOMAIN | sed 's/\./ /g') INSTITUTION_BASE_DN="" first=true #debug #echo "DOMAIN_SPACES: $DOMAIN_SPACES" for DOMAIN_TOKEN in $DOMAIN_SPACES; do if [ "$first" = "true" ];then INSTITUTION_BASE_DN="dc=${DOMAIN_TOKEN}" ; first=false else INSTITUTION_BASE_DN="${INSTITUTION_BASE_DN},dc=${DOMAIN_TOKEN}" ; fi done [ ! -z "$VERBOSE" ] && echo "INSTITUTION_BASE_DN: ${INSTITUTION_BASE_DN}..." [ ! -z "$VERBOSE" ] && echo "Checking dependencies..." for package in $PACKAGES_DEPENDENCIES; do [ ! -z "$VERBOSE" ] && echo -n "Checking if $package is installed... " if ! dpkg-query -l $package | grep -r "^ii" 2>&1 > /dev/null ; then [ ! -z "$VERBOSE" ] && echo " NOT INSTALLED. Installing..." /usr/bin/apt-get install --force-yes --yes $package else [ ! -z "$VERBOSE" ] && echo " INSTALLED." fi done if [ "$ROOTDN" = "" ]; then ROOTDN="cn=admin,${INSTITUTION_BASE_DN}" fi #CHECK LDAP SUPERIOR KNOWLEDGE #GOSA_CONF_DN="ou=gosa,ou=configs,ou=systems" #IMPORTANT: Gosa creates ou=gosa,ou=configs,ou=systems when admin users enters at Gosa by first time!!!!!! GOSA_CONF_ABSOLUTE_DN=${GOSA_CONF_DN},${INSTITUTION_BASE_DN} /usr/bin/ldapsearch -b "${GOSA_CONF_ABSOLUTE_DN}" -s base '(objectclass=*)' -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" > /dev/null 2>&1 RETVAL=$? if [ $RETVAL -ne 0 ]; then echo "No ${GOSA_CONF_ABSOLUTE_DN} ldap object found! Creating it..." #IMPORTANT: Gosa creates ou=gosa,ou=configs,ou=systems when admin users enters at Gosa by first time!!!!!! # Then we create it if not exists GOSA_OU_SYSTEMS_DN="ou=systems",${INSTITUTION_BASE_DN} /usr/bin/ldapsearch -b "${GOSA_OU_SYSTEMS_DN}" -s base '(objectclass=*)' -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" > /dev/null 2>&1 RETVAL=$? if [ $RETVAL -ne 0 ]; then /usr/bin/ldapadd -x -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" <<EOT dn: ${GOSA_OU_SYSTEMS_DN} objectClass: organizationalUnit ou: systems EOT fi GOSA_OU_CONFIGS_DN="ou=configs",${GOSA_OU_SYSTEMS_DN} /usr/bin/ldapsearch -b "${GOSA_OU_CONFIGS_DN}" -s base '(objectclass=*)' -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" > /dev/null 2>&1 RETVAL=$? if [ $RETVAL -ne 0 ]; then /usr/bin/ldapadd -x -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" <<EOT dn: ${GOSA_OU_CONFIGS_DN} objectClass: organizationalUnit ou: configs EOT fi /usr/bin/ldapsearch -b "${GOSA_CONF_ABSOLUTE_DN}" -s base '(objectclass=*)' -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" > /dev/null 2>&1 RETVAL=$? if [ $RETVAL -ne 0 ]; then /usr/bin/ldapadd -x -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" <<EOT dn: ${GOSA_CONF_ABSOLUTE_DN} objectClass: organizationalUnit ou: gosa EOT fi fi #INSTALL BASE LDAP TREE #LDAP CONFIGURATION /usr/bin/ldapsearch -b "${HIGHSCHOOLUSERS_CONF_DN},${INSTITUTION_BASE_DN}" -s base '(objectclass=*)' -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" > /dev/null 2>&1 RETVAL=$? if [ $RETVAL -ne 0 ]; then echo "Adding Ldap object: ${HIGHSCHOOLUSERS_CONF_DN},${INSTITUTION_BASE_DN}" #DEBUG echo "/usr/bin/ldapadd -x -D \"${ROOTDN}\" -w \"${ROOTDN_PASSWORD}\"" [ ! -z "$VERBOSE" ] && echo -n "Configuring ${HIGHSCHOOLUSERS_PACKAGE} in Ldap tree ... " /usr/bin/ldapadd -x -D "${ROOTDN}" -w "${ROOTDN_PASSWORD}" <<EOT dn: ${HIGHSCHOOLUSERS_CONF_DN},${INSTITUTION_BASE_DN} objectClass: organizationalUnit objectClass: top ou: ${HIGHSCHOOLUSERS_STRING} dn: academicPeriod=${ACADEMIC_PERIOD},${HIGHSCHOOLUSERS_CONF_DN},${INSTITUTION_BASE_DN} objectClass: highSchoolUsersConfig objectClass: top academicPeriod: ${ACADEMIC_PERIOD} nextInternalId: ${INITIAL_HIGHSCHOOLUSERS_INTERNAL_ID} studentTemplateDN: ${HIGHSCHOOLUSERS_STUDENT_TEMPLATE_CONF_DN},${INSTITUTION_BASE_DN} teacherTemplateDN: ${HIGHSCHOOLUSERS_TEACHER_TEMPLATE_CONF_DN},${INSTITUTION_BASE_DN} EOT else echo "Ldap object: ${HIGHSCHOOLUSERS_CONF_DN},${INSTITUTION_BASE_DN} already exists. Skipping configuration..." fi
Com a extra que és és opcional instal·lar-lo o no hi es pot escollir l'opció durant la configuració del paquet:
TODO: Finestra del configurador.
Bàsicament s'instal·len carpetes bàsiques de l'arbre com ou=All (tots els usuaris i altres recursos actius), ou=Baixes (recursos no actius), carpetes per allotjar els alumnes, els profes, el personal, les màquines, etc...
L'script s'executa durant la instal·lació del paquet si així ho escolliu al configurador. Sinó el podeu executar en qualsevol moment amb:
$ sudo bash /usr/sbin/install-highschoolusers-extraldaptree
IMPORTANT: Estigueu atents a la sortida del programa. Si hi han error s'indicaran però l'aplicació no s'aturarà. Això permet que per exemple es pugui executar l'script tants cops com faci falta i en el cas que ja existeixin els objectes Ldap simplement avisarà que ja existeixen
Les dades s'obtenen del següents fitxers (en ordre de preferència):
/etc/gosa-highschoolusers/gosa-highschoolusers.conf /etc/install-gosa/install-gosa.conf /etc/openfpnet/openfpnet.conf
Si escolliu instal·lar l'arbre extra s'instal·larà el següent (un exemple per al domini ):
dn: ou=All,dc=iesebre,dc=com objectClass: organizationalUnit objectClass: gosaDepartment ou: All description: All. Tots els usuaris actius dn: ou=Alumnes,ou=All,dc=iesebre,dc=com objectClass: gosaAcl objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Alumnes gosaAclEntry: 0:role:Y249YWx1bW5lcyxvdT1hY2xyb2xlcyxvdT1Sb2xlcyxkYz1pZXNlYnJlLGRjPWNvbQo=:Kg==: ou: Alumnes dn: ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com objectClass: organizationalUnit ou: people dn: ou=Profes,ou=All,dc=iesebre,dc=com objectClass: gosaAcl objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Profes gosaAclEntry: 0:role:Y249UHJvZmVzLG91PWFjbHJvbGVzLG91PVJvbGVzLGRjPWllc2VicmUsZGM9Y29tCg==:Kg==: ou: Profes dn: ou=people,ou=Profes,ou=All,dc=iesebre,dc=com objectClass: organizationalUnit ou: people dn: ou=Familiars,ou=All,dc=iesebre,dc=com objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Familiars ou: Familiars dn: ou=people,ou=Familiars,ou=All,dc=iesebre,dc=com objectClass: organizationalUnit ou: people dn: ou=Grups,ou=All,dc=iesebre,dc=com objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Grups ou: Grups dn: ou=GrupsDomini,ou=Grups,ou=All,dc=iesebre,dc=com objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Grups de Domini: Els per defecte generats per smbldap-tools ou: GrupsDomini dn: ou=Guifi,ou=All,dc=iesebre,dc=com objectClass: gosaAcl objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Usuaris proxy Guifi.net gosaAclEntry: 0:role::Kg==: ou: Guifi dn: ou=Personal,ou=All,dc=iesebre,dc=com objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Personal de l'institut ou: Personal dn: ou=Conserges,ou=Personal,ou=All,dc=iesebre,dc=com objectClass: gosaAcl objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top gosaAclEntry: 0:role:Y249Q29uc2VyZ2VzLG91PWFjbHJvbGVzLG91PVJvbGVzLGRjPWllc2VicmUsZGM9Y29tCg==:Kg==: description: Conserges de l'Institut ou: Conserges dn: ou=people,ou=Conserges,ou=Personal,ou=All,dc=iesebre,dc=com objectClass: organizationalUnit ou: people dn: ou=maninfo,ou=Personal,ou=All,dc=iesebre,dc=com objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Manteniment d'informàtica ou: maninfo dn: ou=Secretaria,ou=Personal,ou=All,dc=iesebre,dc=com objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Personal de secretaria ou: Secretaria dn: ou=Sistemes,ou=All,dc=iesebre,dc=com objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Ordinadors i altres dispositius ou: Sistemes dn: ou=Altres,ou=Sistemes,ou=All,dc=iesebre,dc=com objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Altres ou: Altres dn: ou=Alumnat,ou=Sistemes,ou=All,dc=iesebre,dc=com objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Dispositisu alumnat ou: Alumnat dn: ou=Gestio,ou=Sistemes,ou=All,dc=iesebre,dc=com objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Dispositisu gestió ou: Gestio dn: ou=Impressores,ou=Sistemes,ou=All,dc=iesebre,dc=com objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Impressores ou: Impressores dn: ou=Professorat,ou=Sistemes,ou=All,dc=iesebre,dc=com objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Professorat ou: Professorat dn: ou=Servidors,ou=Sistemes,ou=All,dc=iesebre,dc=com objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Servidors ou: Servidors dn: ou=Baixes,dc=iesebre,dc=com objectClass: organizationalUnit objectClass: gosaDepartment ou: Baixes description: Usuaris no actius dn: ou=Proves,dc=iesebre,dc=com objectClass: gosaDepartment objectClass: organizationalUnit objectClass: top description: Carpeta per a proves ou: Proves dn: ou=Roles,dc=iesebre,dc=com objectClass: organizationalUnit objectClass: gosaDepartment description: Roles ou: Roles dn: ou=aclroles,ou=Roles,dc=iesebre,dc=com objectClass: organizationalUnit ou: aclroles dn: cn=Alumne,ou=aclroles,ou=Roles,dc=iesebre,dc=com objectClass: gosaRole objectClass: top cn: Alumne gosaAclTemplate: 0:sub::users/password;srw,users/user;sr description: Rol Alumne dn: cn=Profe,ou=aclroles,ou=Roles,dc=iesebre,dc=com objectClass: gosaRole objectClass: top cn: Profe gosaAclTemplate: 0:psub::addressbook/addressbookgosa;cmdrw,addressbook/addressbook;cmdrw,users/password;srw,users/environment;sr,users/mailAccount;s,users/user;sr#givenName;w#personalTitle;w#dateOfBirth;w#gender;w#base;w#userPicture;w#o;w#ou;w#departmentNumber;w#manager;w#employeeType;w#roomNumber;w#telephoneNumber;w#pager;w#mobile;w#facsimileTelephoneNumber;w#st;w#l;w#postalAddress;w#homePostalAddress;w#homePhone;w#labeledURI;w#userPassword;w,users/sambaAccount;sr,users/posixAccount;srdescription: Professor description: Rol Profe
dn: cn=nouAlumne,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com objectClass: extensibleObject objectClass: gosaAccount objectClass: gosaUserTemplate objectClass: highSchoolUser objectClass: inetOrgPerson objectClass: irisPerson objectClass: organizationalPerson objectClass: person objectClass: posixAccount objectClass: shadowAccount objectClass: top cn: nouAlumne gidNumber: 2000 highSchoolUserId: 1 homeDirectory: /home/%uid sn: nouAlumne uid: nouAlumne uidNumber: 2000 employeeType: Alumne facsimileTelephoneNumber: 999999999 gecos: NouAlumne NouAlumne gender: M givenName: NouAlumne highSchoolPersonalEmail: %[email protected] irisPersonalUniqueIDType: 0 l: Springfield labeledURI: http://profes.iesebre.com/~%uid loginShell: /bin/bash o: Institut de l'Ebre postalAddress: Rue del Percebe s/n postalCode: 66666 preferredLanguage: es_ES sambaAcctFlags: [UX ] sambaDomainName: NONAME sambaLogoffTime: 2147483647 sambaLogonTime: 0 sambaMungedDial: IAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAA gACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAUAAQAB oACAABAEMAdAB4AEMAZgBnAFAAcgBlAHMAZQBuAHQANTUxZTBiYjAYAAgAAQBDAHQAeABDAGYAZ wBGAGwAYQBnAHMAMQAwMGUwMDAxMBYAAAABAEMAdAB4AEMAYQBsAGwAYgBhAGMAawASAAgAAQBD AHQAeABTAGgAYQBkAG8AdwAwMTAwMDAwMCIAAAABAEMAdAB4AEsAZQB5AGIAbwBhAHIAZABMAGE AeQBvAHUAdAAqAAIAAQBDAHQAeABNAGkAbgBFAG4AYwByAHkAcAB0AGkAbwBuAEwAZQB2AGUAbA AwMCAAAgABAEMAdAB4AFcAbwByAGsARABpAHIAZQBjAHQAbwByAHkAMDAgAAIAAQBDAHQAeABOA FcATABvAGcAbwBuAFMAZQByAHYAZQByADAwGAACAAEAQwB0AHgAVwBGAEgAbwBtAGUARABpAHIA MDAiAAIAAQBDAHQAeABXAEYASABvAG0AZQBEAGkAcgBEAHIAaQB2AGUAMDAgAAIAAQBDAHQAeAB XAEYAUAByAG8AZgBpAGwAZQBQAGEAdABoADAwIgACAAEAQwB0AHgASQBuAGkAdABpAGEAbABQAH IAbwBnAHIAYQBtADAwIgACAAEAQwB0AHgAQwBhAGwAbABiAGEAYwBrAE4AdQBtAGIAZQByADAwK AAIAAEAQwB0AHgATQBhAHgAQwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDAwLgAI AAEAQwB0AHgATQBhAHgARABpAHMAYwBvAG4AbgBlAGMAdABpAG8AbgBUAGkAbQBlADAwMDAwMDA wHAAIAAEAQwB0AHgATQBhAHgASQBkAGwAZQBUAGkAbQBlADAwMDAwMDAw sambaPrimaryGroupSID: TODO-4005 sambaPwdLastSet: 0 sambaSID: TODO-5004 shadowLastChange: 14802 st: NO STATE telephoneNumber: 999999999 userPassword:: e21kNX1OMFQkM1Q0TjBX
Aquest script instal·la un schema Ldap. L'esquema es copia a la carpeta:
/etc/ldap/slapd.d/cn=config/cn=schema
Però no de qualsevol forma, abans se li afegeix el prefix que li pertoqui segons el nombre d'esquemes prèviament existents al sistema.
L'esquema que s'instal·lat està en format Ldif: highschooluser.ldif. El prefix pot variar segons els que hi havia prèviament al sistema però un exemple de com queda la carpeta dels esquemes de Ldap podria ser:
$ ls /etc/ldap/slapd.d/cn\=config/cn\=schema cn={0}core.ldif cn={1}cosine.ldif cn={2}nis.ldif cn={3}iris.ldif cn={4}highschooluser.ldif
Aquest script s'encarrega de modificar el fitxer /etc/gosa/gosa.conf per tal d'incloure el plugin gosa-highschollusers]]. S'afegeixen dos seccions:
Una secció per al plugin a l'apartat de Administration de Gosa:
<section name="Administration"> ... <plugin acl="highschoolusers" class="HighSchoolUserManagement"/> </section>
I un altre per a la configuració dels tabs:
<highschoolusertabs> <tab class="highschooluser" name="Generic"/> <tab class="posixAccount" name="POSIX"/> <tab class="sambaAccount" name="Samba"/> </highschoolusertabs>
L'script accepta una opció (-p de position) per indicar la posició en la que s'instal·la el plugin. Per exemple per instal·lar el plugin com a primer:
$ sudo php /usr/share/php/gosa-highschoolusers/add_plugin.php -p 1
Aquest script és executat per l'instal·lador (script postinst del Debconf) i per aquesta raó no sol ser necessari executar-lo manualment.
Si el plugin ja està configurat al fitxer Gosa, aleshores no és modifica el fitxer:
$ sudo php /usr/share/php/gosa-highschoolusers/add_plugin.php La línia plugin ja esta present al fitxer gosa.conf La línia tabs ja esta present al fitxer conf
Al instal·lar el paquet se us mostraran les següents pantalles:
TODO: Captures de pantalla
La llista de preguntes (en l'ordre que es mostren) és la següent:
En qualsevol moment podeu reconfigurar el paquet amb:
$ sudo dpkg-reconfigure gosa-highschoolusers
En aquest fitxers es guarden les dades de configuració del Plugin de Gosa gosa-highschoolusers:
$ sudo cat /etc/gosa-highschoolusers/gosa-highschoolusers.conf #!/bin/bash # This file has been generated by debconf # See: http://acacha.org/mediawiki/index.php/gosa-highschoolusers # Docs: http://acacha.org/mediawiki/index.php/Highschoolusers#.2Fetc.2Fgosa-highschoolusers.2Fgosa-highschoolusers.conf # Execute: $ sudo dpkg-reconfigure gosa-highschoolusers to change this file #Defines in wich position the plugin is installed #IF VOID THEN POSITION IS LAST HSU_PLUGIN_POSITION="" # ROOTDN ESTABLISHED AT /etc/install-gosa/install-gosa.conf #ROOTDN="" # ROOTDN PASSWORD ESTABLISHED AT /etc/install-gosa/install-gosa.conf #ROOTDN_PASSWORD="" ACADEMIC_PERIOD="2012-13" INSTITUTION_NAME="Institut de l'Ebre" INSTITUTION_DOMAIN="iesebre.com" INITIAL_HIGHSCHOOLUSERS_INTERNAL_ID="1" HIGHSCHOOLUSERS_STUDENT_TEMPLATE_CONF_DN="cn=nouAlumne,ou=people,ou=Alumnes,ou=All" HIGHSCHOOLUSERS_TEACHER_TEMPLATE_CONF_DN="cn=nouProfe,ou=people,ou=Professors,ou=All"
Com podeu veure algunes dades s'agafen de l'aplicació install-gosa .
La configuració si utilitzeu el paquet Debian no us caldrà fer-la manual. Aquesta documentació està només com a referència, es recomana però utilitzar el paquet Debain,
Aquest plugin utilitza un esquema propi.
Els esquema es podeu trobar a la carpeta:
/usr/share/doc/gosa-highschoolusers/ldap_schemas
$ dpkg -L gosa-highschoolusers | grep ldif /usr/share/doc/gosa-highschoolusers/ldap_schemas/iris.ldif.gz /usr/share/doc/gosa-highschoolusers/ldap_schemas/highschooluser.ldif /usr/share/doc/gosa-highschoolusers/ldap_schemas/cosine.ldif.gz /usr/share/doc/gosa-highschoolusers/ldap_schemas/nis.ldif.gz
Com podeu veure a part de l'esquema nou, també es proveïxen les dependències mínimes: iris, ni i cosine.
IMPORTANT: Durant la instal·lació només s'instal·len els esquemes al servidor Ldap si no existeixen. S'instal·la si cal tant l'esquema propi com les dependències
El atribut:
changePeriodDaylimit
es pot establir a:
<!-- If you broke your setup using the propertyEditor, then set 'ignoreLdapProperties' to true. --> <main default="default" changePeriodDaylimit="20 June"> <!-- Location definition --> <location name="default" config="ou=gosa,ou=configs,ou=systems,dc=iesebre,dc=com"> <referral URI="ldap://localhost:389/dc=iesebre,dc=com" adminDn="cn=admin,dc=iesebre,dc=com" adminPassword="PARAULADEPAS"/> </location> </main>
Per indicar a la funció calculateCurrentAcademicPeriod() (fitxer /usr/share/gosa/plugins/admin/HighSchoolUsers/functions.php) quina és la data de canvi de període acadèmic.
Els atributs:
studentTemplateDN teacherTemplateDN
es pot establir també al fitxer /etc/gosa/gosa.conf:
... <!-- If you broke your setup using the propertyEditor, then set 'ignoreLdapProperties' to true. --> <main default="default" studentTemplateDN="cn=Nou Alumne,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com" teacherTemplateDN="cn=Nou profe,ou=people,ou=Profes,ou=All,dc=iesebre,dc=com"> ...
Permeten indicar les plantilles per defecte per a alumnes i profes. Si no s'indica cap valors els valors per defecte (hardcoded) són:
studentTemplateDN="cn=Nou Alumne,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com" teacherTemplateDN="cn=Nou profe,ou=people,ou=Profes,ou=All,dc=iesebre,dc=com"
El plugin Highschoolusers permet imprimir en format PDF la matrícula TIC de l'usuari. Un exemple, al crear/canviar la paraula de pas:
Premeu al botó Print i obtindreu quelcom similar a:
Per modificar el PDF cal tocar el fitxer:
/usr/share/gosa/html/pdfreports/enrollment.php
Per exemple per canviar la signatura i la capçalera cal canviar:
//IMAGES PATHS $logo_image="/usr/share/gosa/html/pdfreports/images/logo1.jpeg"; $signature_image="/usr/share/gosa/html/pdfreports/images/signature.jpeg";
Si no existeix es crearà un objecte Ldap amb la configuració de l'aplicació highschoolusers. L'objecte es crea a:
academicPeriod=2011-2012,ou=highschoolusers,ou=gosa,ou=configs,ou=systems,dc=ELVOSTREDOMINI,dc=com
On el RDN:
academicPeriod=2011-2012
es generà automàticament segons la data en que estem. Hi ha una data per defecte (per codi) que marca el canvi de període per defecte:
25 June
Aquesta data es pot sobreescriure al fitxer gosa.conf, per exemple:
... <main default="default" warnSSL="true" forceSSL="false" forceGlobals="true" ignoreLdapProperties="false" rfc2307bis="false" passwordProposalHook="apg -MCLN -m 8 -n1" copyPaste="true" changePeriodDaylimit="20 June" studentTemplateDN="cn=Nou Alumne,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com" teacherTemplateDN="cn=Nou profe,ou=people,ou=Profes,ou=All,dc=iesebre,dc=com"> <location name="default" config="ou=gosa,ou=configs,ou=systems,dc=iesebre,dc=com"> <referral URI="ldap://localhost:389/dc=iesebre,dc=com" adminDn="cn=admin,dc=iesebre,dc=com" adminPassword="PUT YOU PASSWROD HERE"/> </location> </main> ...
L'objecte té els següents atributs:
Els valors per defecte per codi són:
$studentTemplateDN="cn=Nou Alumne,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com"; $teacherTemplateDN="cn=Nou profe,ou=people,ou=Profes,ou=All,dc=iesebre,dc=com";
I es poden modificar al fitxers gosa.conf posant:
studentTemplateDN="cn=Nou Alumne,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com" teacherTemplateDN="cn=Nou profe,ou=people,ou=Profes,ou=All,dc=iesebre,dc=com"
Per exemple:
... <main default="default" warnSSL="true" forceSSL="false" forceGlobals="true" ignoreLdapProperties="false" rfc2307bis="false" passwordProposalHook="apg -MCLN -m 8 -n1" copyPaste="true" changePeriodDaylimit="20 June" studentTemplateDN="cn=Nou Alumne,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com" teacherTemplateDN="cn=Nou profe,ou=people,ou=Profes,ou=All,dc=iesebre,dc=com"> <location name="default" config="ou=gosa,ou=configs,ou=systems,dc=iesebre,dc=com"> <referral URI="ldap://localhost:389/dc=iesebre,dc=com" adminDn="cn=admin,dc=iesebre,dc=com" adminPassword="%42 yxhsT"/> </location> </main>
La última versió de l'esquema la podeu trobar a:
Recursos
Un exemple de coma ha de quedar el fitxer gosa.conf si voleu activar la proposta de paraules de pas és:
... <main default="default" warnSSL="true" forceSSL="false" forceGlobals="true" ignoreLdapProperties="false" rfc2307bis="false" passwordProposalHook="apg -MCLN -m 8 -n1" copyPaste="true" changePeriodDaylimit="20 June" studentTemplateDN="cn=Nou Alumne,ou=people,ou=Alumnes,ou=All,dc=iesebre,dc=com" teacherTemplateDN="cn=Nou profe,ou=people,ou=Profes,ou=All,dc=iesebre,dc=com"> <location name="default" config="ou=gosa,ou=configs,ou=systems,dc=iesebre,dc=com"> <referral URI="ldap://localhost:389/dc=iesebre,dc=com" adminDn="cn=admin,dc=iesebre,dc=com" adminPassword="%42 yxhsT"/> </location> </main>
Tingueu en compte que si utilitzeu la configuració de l'exemple necessitareu tenir l'aplicació APG:
$ sudo apt-get install apg
Consulteu:
Gosa#Com_activar_la_proposta_de_paraules_de_pas
IMPORTANT: Si es vol utilitzar l'aplicació GADS per a sincronitzar els comptes Ldap a un Google Apps aleshores és molt important utilitzar un tipus de hash que sigui compatible amb Google Apps. Mai utilitzeu crypt. La recomanació és utilitzar MD5
Es pot escollir al template dels usuaris i així ens assegurem que tots els usuaris creats per plantilla utilitzen un tipus de has correcte.
IMPORTANT: Compte amb indicar un sambaHashHook ja que si no és correcte podeu tenir l'error Gosa#Els_usuaris_generats_amb_Gosa_entre_al_domini_de_Windows.2FSamba_sense_password
TODO. Documentació extreta de man gosa.conf
passwordDefaultHash string
The passwordDefaultHash statement defines the default password hash to choose for new accounts. Valid values are crypt/standard-des, crypt/md5, crypt/enhanced-des, crypt/blowfish, md5, sha, ssha, smd5, clear and sasl. These values will be overridden when using templates.
sambaHashHook path
The sambaHashHook statement contains an executable to generate samba hash values. This is required for password synchronization, but not required if you apply gosa-si services. If you don't have mkntpasswd from the samba distribution installed, you can use perl to generate the hash:
perl -MCrypt::SmbHash -e "print join(q[:], ntlmgen \$ARGV[0]), $/;"
En el moment d'escriure aquest manual (--acacha 07:23, 14 set 2011 (UTC)) encara no es poden crear/modificar plantilles des del plugin highschoolusers. De fet tampoc les heu de modificar des del plugin d'usuaris original ja que si ho feu les deixareu sense utilitat (provocarà l'error Highschoolusers#.C2.A1Esta_cuenta_tiene_extensiones_GOsa_no_validas.21 al crear nous usuaris amb la plantilla (mal) modificada)
Quin és doncs el procediment?
A l'objecte:
academicPeriod=2011-2012,ou=highschoolusers,ou=gosa,ou=configs,ou=systems,dc=insmontsia,dc=com
NOTA: Tingueu en compte que és un exemple per al període acadèmic 2011-12 i un Institut en concret. Modifiqueu el que convingui per al vostre cas
Cal indicar el DN de les plantilles d'usuari i professor:
studentTemplateDN teacherTemplateDN
Consulteu TODO Highschoolusers
Seria ideal que els objectes Users estiguessin pensat per ser modificables:
Paraules de pas:
Highschoolusers/Canvis al cofi font de Gosa
TODO
TODO
Consulteu Desenvolupament gosa-highschoolusers
El repositori subversion amb el codi font el podeu trobar a:
http://www.iesebre.com/subversion/projectes/gosa-highschoolusers/
Està relacionat amb:
Consulteu Fatal error: Class name must be a valid object or a string in /usr/share/gosa/include/functions.inc on line 2889
NOTA: Aquest error s'ha solucionat en les últimes versions del paquet. --acacha (discussió) 10:52, 23 jul 2012 (CEST)
Aquest error al dona al mirar d'imprimir una matrícula TIC i en altres moments.
és un problema de no haver definit correctament el paràmetre:
passwordDefaultHash
al fitxer gosa.conf.
Per exemple poseu:
passwordDefaultHash="sha"
Gosa#Al_moure_usuaris_Unix_.28posixAccount.29_no_es_mouen_els_grups_dels_usuaris
La plantilla no tenia SID?
En anglès:
Cannot find a suitable password method for the current hash!
Si us dona aquest error al crear un nou usuari (en el meu cas utilitzant la plantilla de profe) es degut a que la plantilla de professor (o la que estigueu utilitzant) no té el camp:
userPassword.
Poseu-li aquest camp a la plantilla (important: per ADS si utilitzeu una versió de highschoolusers que no permet modificar plantilles per la interfície gràfica de Gosa), podeu posar qualsevol valor.
Consulteu:
Gosa#Canviar_el_baseDN_a_partir_del_qual_es_busquen_usuaris_v.C3.A0lids_per_entrar_a_Gosa
Consulteu:
Gosa#Canviar_el_baseDN_a_partir_del_qual_es_busquen_usuaris_v.C3.A0lids_per_entrar_a_Gosa
Alumnes
Profes
Consulteu:
http://www.iesebre.com/subversion/projectes/migrate201011/migrate.php
En alguns casos aquest error pot ser degut al fet de tenir boquejat al navegador els popups.
En negreta l'error que apareix a la consola d'errors de Javascript:
Event.observe(window, 'load', function() { var irisPersonalUniqueIDType=document.getElementById("irisPersonalUniqueIDType"); var irisPersonalUniqueIDTypes = ["DNI","NIE","Passport","Otros"]; for(var i=0; i<irisPersonalUniqueIDTypes.length; i++) { var value = irisPersonalUniqueIDTypes[i]; if (i== ) { irisPersonalUniqueIDType.options[irisPersonalUniqueIDType.length] = new Option(value,i,true); } else { irisPersonalUniqueIDType.options[irisPersonalUniqueIDType.length] = new Option(value,i); } }
Aquest error apareix quan l'usuari no té l'atribut: irisPersonalUniqueIdType. S'ha arreglat el codi per tal que si no té aquest camp el que es posi és el valor 0 al camp (DNI per defecte).
Si esteu treballant amb usuaris migrats (que ja estaven creats amb el mòdul d'usuaris normals) aleshores és normal que doni aquest error ja que per migrar-los cal posar 3 nous objectes:
Pot passar al modificar la plantilla d'alumne o professor nou des de l'editor d'usuaris de Gosa i no pas el de highschoolusers!. També us donarà l'error:
¡Esta cuenta tiene extensiones GOsa no validas!
El problema és a Highschoolusers la plantilla l'alumne està hardcoded!! i per tant si se li canvia el nom després no la troba i no es generen bé els nous usuaris.
NOTA: Es vol aportar el patch als responsables de gosa a veure si està disponible en versions futures de Gosa. --acacha 16:35, 19 juny 2011 (UTC)
Si us dona un error com (o similar):
End save_object() at class_highschooluser.inc Fatal error: Call to undefined method stdClass::set_acl_base() in /usr/share/gosa/include/class_tabs.inc on line 442
Possiblement es que no heu aplicat el pegat (patch) que modifica alguns fitxers de gosa. El pegat el podeu trobar a l'arrel del codi font del plugin i el podeu aplicar amb:
$ sudo make applygosapatch patch -p0 --directory=/ -i gosa.patch patching file usr/share/gosa/plugins/admin/users/class_userManagement.inc patching file usr/share/gosa/plugins/admin/users/tabs_user.inc patching file usr/share/gosa/plugins/personal/generic/class_user.inc
També es pot aplicar si no es té el codi font amb:
$ sudo patch -p0 --directory=/ -i /usr/share/gosa-highschoolusers/patchs/gosa.patch
Consulteu:
Highschoolusers/Canvis al cofi font de Gosa
Deprecated: Function set_magic_quotes_runtime() is deprecated in /usr/share/php/fpdf/fpdf.php on line 908 FPDF error: Missing or incorrect image file: /usr/share/gosa/html/logoGeneralitatEducacio3.jpeg
Vegeu també:
Si al intentar guardar una foto us dona l'error:
Fatal error: cannot instantiate class Imagick - try running update-gosa to fix this
Aleshores és que us cal la llibreria dinàmica de php per a Imagick
$ sudo apt-get install php5-imagick
Per aplicar els canvis:
$ sudo /etc/init.d/apache2 restart
NOTA: No estic segur però també és possible que uns calgui executar update-gosa i sortir i tornar a entrar