IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

IMPORTANT: Consulteu l'article Router Linux i concretament l'article Router_infocentre amb un guió de com muntar un servidor Ubuntu Server amb Gosa i altres serveis...

Alert.png Aquesta wiki forma part dels materials d'un curs
Curs: SambasobreLDAP, LinuxAdministracioAvancada
Fitxers: Sessio8.pdf
Repositori SVN: https://anonymous@svn.projectes.lafarga.cat/svn/iceupc/SambaSobreLDAP
Usuari: anonymous
Paraula de pas: sense paraula de pas
Autors: Sergi Tur Badenas

Contingut

Característiques

  • Consulteu la llista d'aplicacions client que suporten Ldap com a base de dades centralitzada d'usuaris.
  • Gosa és una aplicació pensada per als usuaris finals i no per a informàtics que permet als gestors de l'Institut gestionar de forma fàcil les dades dels seus usuaris (alumnes, professors, pas...)
  • Gestió fàcil i centralitzada de comptes d'usuari. Una sola base de dades d'usuaris per a tots les aplicacions del centre.
  • GOsa ha estat adaptat per a una creació ràpida d'usuaris en moment crítics com la matrícula de Juliol/Setembre
  • Els gestors poden crear fàcilment usuaris, generar noves paraules de pas, assignar alumnes a grups docents, etc.
  • Els usuaris finals (alumnes, professors, pas...) disposen d'un usuari i paraula de pas des del primer dia i, si es desitja, poden gestionar les seves dades des de Gosa (recuperar/modificar la paraula de pas, consultar/modificar dades personals, etc.)
  • Els usuaris gestors (secretaria, equip directiu, caps de departament...) poden gestionar les seves dades segons la política del centre.
  • Sistema automàtic de recuperació de paraules de pas mitjançant la compte de correu personal de l'usuari
  • Generació d'informes i documents amb PDF
  • Creació automàtica de comptes de servidor: Servidors de fitxers (comptes Linux i Windows), Moodle, gestió de faltes...
  • Generació en lot de documents PDF (imprimir totes les matrícules d'un grup, conjunt específic d'usuaris, etc.)

Requeriments

Esquemes Ldap

Els esquemes requerits són:

El instal·lador us comprovarà si els teniu instal·lats al servidor Ldap. A més si instal·leu certs plugins aleshores podeu requerir objectes extres:

AllGosaSchemas.png

Al fitxer:

http://acacha.org/~sergi/gosa/gosa-2.7-ldifs.tar.gz

Podeu trobar tots els esquemes en format ldif.

Instal·lació

Els pròxims apartats, especialment el següent apartat compte una guia pas a pas per instal·lar Gosa a una Ubuntu 10.10 (--acacha 15:25, 11 abr 2011 (UTC)). Els passos a seguir en una altre sistema Debian haurien de ser similars (però jo no he provat)

Instal·lació de gosa 2.7 pas a pas a Ubuntu Server 11.10

Prerequisits

  • Instal·lar un sistema operatiu Ubuntu Server 11.10
  • Instal·lar LAMP amb tasksel
  • Instal·lar Ldap (més fàcil que en anteriors distribucions)
  • Cal saber les dades d'accés a Ldap per configurar Gosa.
  • Instal·lacío dels esquemes.

Per la resta s'instal·la igual.

Instal·lació de gosa 2.7 pas a pas a Ubuntu 10.10

Consulteu la versió reduïda només amb les comandes que cal executar/sense explicacions (no recomanat si no s'ha fet mai i si no sabeu el que esteu fent val la pena llegir les explicacions de la versió completa)

IMPORTANT: La versió 2.7 de Gosa requereix de smarty3. Als repositoris d'Ubuntu Smarty 3 només està disponible per a la versió 10.10 d'Ubuntu

Fet a una màquina Ubuntu 10.10:

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 10.10
Release:	10.10
Codename:	maverick

Els paquets es poden trobar al repositori;

http://oss.gonicus.de/pub/gosa/debian-squeeze/ 

IMPORTANT: Fixeu-vos que utilitzem la versió squeeze de Debian, en versions anteriors d'Ubuntu estàvem utilitzant etch

NOTA: En el moment d'escriure aquest manual (--acacha 13:27, 26 gen 2011 (UTC)) hi havia un error al fitxer packages que o permet utilitzar apt Gosa/Incidència solucionada. --acacha 15:45, 12 feb 2011 (UTC)

Editeu el fitxer /etc/apt/sources.list i afegiu la línia:

$ sudo joe /etc/apt/sources.list
deb http://oss.gonicus.de/pub/gosa/debian-squeeze/ ./

IMPORTANT: Afegiu tota la línia incloent el puntbarra "./" final

NOTA: Assegureu-vos de no tenir altres línies de gosa de versions anteriors (no cal que us hi preocupeu si no havieu instal·lat mai abans Gosa). Per exemple, eliminar la línia que feia referència a etch en el cas que ja tinguéssiu instal·lat gosa 2.6

Ara ja podeu instal·lar Gosa:

$ sudo apt-get update && sudo apt-get install gosa && sudo apt-get install gosa-plugin-* gosa-help-en gosa-dev gosa-schema

Apliquem els canvis a Apache. Reiniciem :

$  sudo /etc/init.d/apache2 restart

Aneu a:

http://localhost/gosa

Per tal d'iniciar l'assistent de Gosa:

L'assistent té com a objectiu crear el fitxer de configuració de gosa gosa.conf. Al final de l'assistent us 
donarà l'opció de descarregar el fitxer gosa.conf amb totes les dades de configuració que heu aportat amb 
l'assistent.

IMPORTANT: Si es vol tornar a configurar gosa només cal eliminar (o millor fer una còpia prèvia abans d'eliminar) el fitxer gosa.conf i aleshores tornar a entrar a Gosa. Us tornarà a iniciar el assistent.

IMPORTANT: L'assistent de la versió 1.7 és més simple i més curt (també té menys potència de configuració) que l'assistent de la versió 1.6. Podeu veure un exemple amb 1.6 amb algunes captures de l'assistent antic a Configuració Gosa 2.6

La primera pàgina que apareix presenta l'assistent o ' wizard ' d'instal·lació de l'aplicació Gosa. També ens mostra que al fer servir aquest assistent (i tots els passos indicats) és generarà un arxiu de configuració per al Gosa, ja que és imprescindible per fer funcionar l'aplicació. I per últim ens indica que per raons de seguretat tenim que crear un arxiu temporal per autenticar la instal·lació del Gosa al nostre servidor executant la següent comanda al terminal :

Cap gosa1.png

$ echo -n oau2mrd74lvng5tj9g0pa69pd1 /tmp/gosa.auth

NOTA: La comanda amb echo que executeu vosaltres ha de ser diferent de la que hi ha d'exemple aquí

En el pas següent mostra les verificacions prèvies a la instal·lació. Segons això el propi servidor PhP ha de disposar d'un conjunt de mòduls i opcions de configuració. En principi, ha de donar error en aquest punt ja que segurament falten alguns paquets o moduls per a instal·lar :

GosaError.png

Si algun d'aquests mòduls o paquets no estigues instal·lat hauríem de fer els passos indicats a:

Gosa/Instal·lar paquets requerits per Gosa

Tot seguit ens demanà l'acceptació de la versió 2 de la llicència del Gosa :


Cap gosa3.png


Ara necessitaríeu tenir instal·lat el servidor de Ldap per poder continuar. Seguiu les instruccions de:

Ldap#Karmic_Koala.2C_Ubuntu_9.10

Llavors la següent finestra mostrarà les dades de connexió per al servidor LDAP, principal font d'informació del Gosa. Per defecte ja indica les dades de connexió del LDAP però cal inserir el DN o ' Distinguished Name ' de l'administrador del servidor i la seva respectiva clau de pas. L'última opció la deixem per defecte en ' No ', la qual correspon a una opció de l'esquema.


Cap gosa4.png


Un cop teniu Ldap instal·lat i us hi podeu connectar aleshores cal resoldre el problema dels esquemes. Consulteu:

Gosa#Ldap_Schema_Check

i

Gosa#Esquemes_gosa_2.7


Quan ens aparegui l'avís en verd podrem continuar amb la instal·lació :


Cap gosa5.png


Després hi haurà un altre pas on es verificaran si hi ha alguns errors comuns que sorgeixen al fer la migració de la base de dades Ldap. Llavors pitjarem al botó Migrate per a fer la migració :


Cap gosa13.png


Llavors ens sortirà una finestra exactament com aquesta :


Cap gosa14.png


Només caldrà tornar a clicar el botó Migrate i ja tindrem una part feta :


Cap gosa15.png


Ara només cal crear l'usuari administrador pitjant al botó Create i tot seguit inserint el nom d'usuari i la seva clau de pas :


Cap gosa16.png


Per seguir amb l'instal·lació hauria de quedar així :


Cap gosa6.png


El penúltim pas correspon a l part de comentaris i notificació d'informació. Aquest pas el deixarem també per defecte, ja que en principi no ens interessa rebre informació ni comentar res :


Cap gosa7.png


Per últim ens sortirà una finestra on ens demana que donéssem permisos a l'arxiu /etc/gosa/gosa.conf :


Cap gosa9.png


El problema és que ens surt un avís en roig on diu que el fitxer de configuració del Gosa té errors o que no existeix. L'únic que hem de fer és pitjar al botó : Download Configuration, automàticament ens baixarà l'arxiu de configuració el qual el copiarem a la carpeta /etc/gosa :

$ sudo cp gosa.conf /etc/gosa

I després li donarem els permisos indicats a la finestra anterior :

$ chown root:www-data /etc/gosa/gosa.conf
$ chmod 640 /etc/gosa/gosa.conf

Al final hauria de quedar així l'ultim pas i només ens caldria pitjar a "Next" per acabar i ja poder iniciar sessió al Gosa :


Cap gosa12.png


Un cop acabat l'assistent, ara ja podeu entrar a gosa amb l'usuari:

  • usuari: admin
  • Paraula de pas: l'heu escollit durant la instal·lació

Com esborrar completament Ldap per tal de tornar a començar la instal·lació

Consulteu Ldap#Desinstal.C2.B7laci.C3.B3_completa_del_servidor_Ldap

Resol·lució de problemes. Troubleshooting

¡No se puede encontrar un método de codificación válido para la clave introducida! o Cannot find a suitable password method for the current hash!

TODO, l'error es genera a:

./include/password-methods/class_password-methods.inc:339:        msg_dialog::display(_("Error"), _("Cannot find a suitable password method for the current hash!"), ERROR_DIALOG);


Falten els esquemes LDAP

Errors d'esquemes OXUserObject, scalixUserClass, apple-user

Això passa si instal·leu tots els plugins, us donarà un error avis al entrar a gosa 2.7 (de fet no us mostra els plugins relatius als esquemes que falten)

Els squemes són:

   * OXUserObject
   * scalixUserClass
   * apple-user

NOTA: La sol·lució a aquest problema és esborrar les referències a aquests plugins al fitxer /etc/gosa/gosa.conf

Hi ha que esborrar tots els: netatalk, scalixAccount, webdavAccount i oxchangeAccount (Surten cuatre vegades els dos primers i tres vegades els ultims)
Després reiniciar el apache y executar el update-gosa

NOTA: Els squemes no estan al paquet gosa-schema. És possible que no estiguin per què no són de lliure distribució?

Ldap Schema Check

Si us dona l'error:

LDAP schema check

Schema specific settings
Enable schema validation when logging in

Check status
Schema check failed

Missing required object class 'gosaObject'!
Missing required object class 'gosaAccount'!
Missing required object class 'gosaLockEntry'!

Cal instal·lar els esquemes. Amb la configuració de LDAP nova (a partir de 2.3) a la carpeta /etc/ldap/slapd.d/cn=config/cn=schema heu de tenir:

# ls -l
total 160
-rw-r----- 1 openldap openldap 15456 2010-06-05 13:13 cn={0}core.ldif
-rw------- 1 openldap openldap  3282 2010-06-05 16:26 cn={10}gofax.ldif
-rw------- 1 openldap openldap 19803 2010-06-05 16:27 cn={11}goserver.ldif
-rw------- 1 openldap openldap  1717 2010-06-05 16:27 cn={12}goto-mime.ldif
-rw------- 1 openldap openldap 15893 2010-06-05 16:28 cn={13}gosa-samba3.ldif
-rw------- 1 openldap openldap   934 2010-06-05 13:13 cn={14}autofs.ldif
-rw------- 1 openldap openldap  9413 2010-06-05 13:13 cn={15}kerberos.ldif
-rw------- 1 openldap openldap 11382 2010-06-05 13:13 cn={1}cosine.ldif
-rw------- 1 openldap openldap  2876 2010-06-05 13:13 cn={2}inetorgperson.ldif
-rw------- 1 openldap openldap  6512 2010-06-05 13:13 cn={3}nis.ldif
-rw------- 1 openldap openldap  1540 2010-06-05 13:13 cn={4}misc.ldif
-rw------- 1 openldap openldap 11539 2010-06-05 14:10 cn={5}samba3.ldif
-rw------- 1 openldap openldap   613 2010-06-05 16:13 cn={6}trust.ldif
-rw------- 1 openldap openldap 13171 2010-06-05 16:13 cn={7}gofon.ldif
-rw------- 1 openldap openldap 12922 2010-06-05 16:14 cn={8}gosystem.ldif
-rw------- 1 openldap openldap  6337 2010-06-05 16:13 cn={9}goto.ldif

Els podeu obtenir de:

http://acacha.org/~sergi/gosa/gosa-2.7-ldifs.tar.gz 

NOTA: Els fitxers originals els vaig obtenir de http://launchpadlibrarian.net/31911559/gosa-ldifs.tar.gz, però els he modificat per fer alguns dels passos més senzills. L'exemple és per a la versió 2.7, podeu trobar però els de la versió 2.6.3 a Gosa Esquemes 2.6.3

El tarball que us heu baixat conté tots els fitxers d'esquema necessaris, la forma més ràpida d'instal·lar-los és eliminar/moure/copiar els que tingueu i instal·lar aquests:

$ sudo -s
# cd /etc/ldap/slapd.d/cn=config/cn=schema
# rm -rf *
# wget http://acacha.org/~sergi/gosa/gosa-2.7-ldifs.tar.gz 
# tar xvzf gosa-2.7-ldifs.tar.gz

NOTA: Consulteu els comentaris sobre el format dels fitxers ldif i petits problemes que us podeu trobar

També cal que us assegureu que tots els esquemes són del usuari openldap:

# chown openldap:openldap -R *

Un cop ho teniu tot torneu a iniciar ldap:

# exit
$ sudo /etc/init.d/slapd restart

Si teniu errors els podeu depurar amb:

$ sudo slapd -d 16383 -h 'ldap:/// ldapi:///' -g openldap -u openldap -F /etc/ldap/slapd.d/

Esquemes gosa 2.7

$ wget http://oss.gonicus.de/pub/gosa/debian-squeeze/gosa-schema_2.7-1_all.deb

$ sudo dpkg -i gosa-schema_2.7-1_all.deb
$ sudo apt-get install gosa-schema
$ dpkg -L gosa-schema 
/.
/etc
/etc/ldap
/etc/ldap/schema
/etc/ldap/schema/gosa
/etc/ldap/schema/gosa/trust.schema
/etc/ldap/schema/gosa/rfc2307bis.schema
/etc/ldap/schema/gosa/goserver.schema
/etc/ldap/schema/gosa/gofon.schema
/etc/ldap/schema/gosa/goto.schema
/etc/ldap/schema/gosa/gosa-samba3.schema
/etc/ldap/schema/gosa/samba3.schema
/etc/ldap/schema/gosa/gofax.schema
/etc/ldap/schema/gosa/goto-mime.schema
/etc/ldap/schema/gosa/gosystem.schema
/usr
/usr/share
/usr/share/doc
/usr/share/doc/gosa-schema
/usr/share/doc/gosa-schema/changelog.Debian.gz
/usr/share/doc/gosa-schema/copyright

Per comprovar si han canviat (veureu que si...):

$ md5sum *
39e80f1f1fc5c9854ebd9ca9831ef79d  gofax.schema

18f4a916bc46beaefc93ef466ff74bcf  gofon.schema 
cdb639c1e0ab0429d77f0a7d94010125  gosa-samba3.schema

3f7e75de1f6dffd0d44a2ccd4915eada  goserver.schema
599a9fb9f9e6e67a69dc7aa1ce9bf25d  gosystem.schema
c150ea446e049849fc72b6d31c015e2b  goto-mime.schema
99545a92e8666269b33bae1abe972a45  goto.schema
aa1098cf7f53ec480d1c2afe55dd22a2  rfc2307bis.schema
9cc994e83ebc9f83f60cbc2bca6e905e  samba3.schema
3c825b7514beb02c07b81ab2fdd3cc76  trust.schema
$  md5sum *
0e17ff72e13f5a2682da55f65972d002  dhcp.schema
49fe799c6eca54ae227b22d57ebc1145  dnszone.schema
2303ae71dd37e5352f9d414b553e2ba8  fai.schema
747492c14bd1c18415f454a39bbab92a  goconfig.schema
39e80f1f1fc5c9854ebd9ca9831ef79d  gofax.schema

c8a35385c2c6e23998a72657db117f98  gofon.schema
111cba8a36bb063f4bbe9241f133d7e0  gosa-samba3.schema
3181d5d9def03201dd4e0429b1801a55  goserver.schema
1c1409bb4906e1d3dee034e5b33a9cfa  gosystem.schema
8abab8a8c5eaa3d0b58787de845f25dc  goto-mime.schema
69c45c143c6b1188aafb4451ce7363dc  goto.schema
0c263a6b279278e226a574e8e6fe855c  hdb.schema
e51749096806e94cda38a33f68422a15  kolab2.schema
ef513731cb121735358939370766bac6  nagios.schema
94fd79fa6bb85d819e93ca16ba291117  openssh-lpk.schema
05ea476fe678b70c165de89b30120a11  openxchange.schema
b435548563a0293bb18e8dfb857c1874  phpgwaccount.schema
9dac79599568cf524c9ed7b8c9f3b2c6  phpscheduleit.schema
89605d65f941862c5b126363ce388af4  pptp.schema
5be79da6fffbf6ce9b5407a417aad77e  pureftpd.schema
aa1098cf7f53ec480d1c2afe55dd22a2  rfc2307bis.schema
84e9685703dfb84c8c55f3f427b96263  rfc2739.schema
9cc994e83ebc9f83f60cbc2bca6e905e  samba3.schema
9168891bc7b76fd8b86ed74cc739dbf7  samba.schema
9398d0f244e31529b79af7a78a9694c1  sudo.schema
3c825b7514beb02c07b81ab2fdd3cc76  trust.schema

Per crea-los he instal·lat tots els paquets de Gosa per tal de tenir tots els esquemes i he creat el fitxer:

$ mkdir schema_convert
$ cd schema_convert
$ mkdir ldif_result
$ cat schema_convert.conf
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/gosa/samba3.schema
include /etc/ldap/schema/gosa/trust.schema
include /etc/ldap/schema/gosa/gofon.schema   
include /etc/ldap/schema/gosa/gosystem.schema
include /etc/ldap/schema/gosa/goto.schema  
include /etc/ldap/schema/gosa/gofax.schema   
include /etc/ldap/schema/gosa/goserver.schema
include /etc/ldap/schema/gosa/goto-mime.schema  
include /etc/ldap/schema/gosa/gosa-samba3.schema
include /etc/ldap/schema/gosa/fai.schema
include /etc/ldap/schema/gosa/dhcp.schema
include /etc/ldap/schema/gosa/nagios.schema
include /etc/ldap/schema/gosa/phpgwaccount.schema
include /etc/ldap/schema/gosa/pureftpd.schema       
include /etc/ldap/schema/gosa/dnszone.schema
include /etc/ldap/schema/gosa/hdb.schema
include /etc/ldap/schema/gosa/openssh-lpk.schema
include /etc/ldap/schema/gosa/phpscheduleit.schema
include /etc/ldap/schema/gosa/sudo.schema
include /etc/ldap/schema/gosa/rfc2739.schema
include /etc/ldap/schema/gosa/kolab2.schema
include /etc/ldap/schema/gosa/pptp.schema
#include /etc/ldap/schema/gosa/openxchange.schema 

I he executat:

$ slaptest -f schema_convert.conf -F ldif_result

=: config_add_internal: DN="cn=gofax,cn=schema,cn=config,cn=schema,cn=config" not child of DN="cn=schema,cn=config"

Als fitxers de la carpeta /etc/ldap/slapd.d/cn=config/cn=schema, el dn ha de ser relatiu i no pas absolut. En comptes de:

# cat cn\=\{10\}gofax.ldif | more
dn: cn=gofax,cn=schema,cn=config

Ha de posar:

# cat cn\=\{10\}gofax.ldif | more
dn: cn=gofax
...

Altres documentacions de instal·lació de GOSA. Documentació obsoleta

NOTA: Són obsoletes i només es deixen com a referència:

Consulteu:

i també:

Consulteu Altres opcions d'instal·lació de Gosa.

Fitxers

/usr/share/gosa

És la carpeta principal on es guarda tot el codi PHP i altres fitxers de suport com imatges, fulles d'estils, plantilles d'smarty, etc.

/usr/share/gosa/html

Aquesta carpeta conté el codi web (html, PHP, imatges, etc) que és mostra a través del servidor web Apache.

Consulteu Desenvolupament_a_mida_de_Gosa#Funcionament_general_de_Gosa i vegeu també el fitxer /etc/apache2/conf.d/gosa.conf

Fitxers de configuració

/etc/apache2/conf.d/gosa.conf

Fitxer de configuració d'Apache per tal de carregar l'aplicació Gosa al servidor Web (no oblideu que Gosa és una aplicació Lamp).

$ cat /etc/apache2/conf.d/gosa.conf
# Include GOsa to your web service
Alias /gosa /usr/share/gosa/html

<IfModule mod_php5.c>
<Location /gosa>
   php_admin_flag engine on
   php_admin_flag register_globals off
   php_admin_flag allow_call_time_pass_reference off
   php_admin_flag expose_php off
   php_admin_flag zend.ze1_compatibility_mode off
   php_admin_flag register_long_arrays off
   php_admin_flag magic_quotes_gpc on
   php_admin_value upload_tmp_dir /var/spool/gosa/
   php_admin_value session.cookie_lifetime 0
   include /etc/gosa/gosa.secrets
</Location>
</IfModule>

<IfModule mod_fcgid.c>
  PHP_Fix_Pathinfo_Enable 1
  <Location /gosa>
    Options +ExecCGI
    AddHandler fcgid-script .php
    FCGIWrapper /var/www/php-fcgi/php-fcgi-starter .php
    include /etc/gosa/gosa.secrets
  </Location> 
</IfModule></pre>

Fitxers executables

/usr/sbin/update-gosa

El fitxer update-gosa

$ file /usr/sbin/update-gosa
/usr/sbin/update-gosa: a /usr/bin/php script text executable

és tracta d'un script de PHP executable per línia de comandes que s'encarrega d'actualitzar aplicar canvis a gosa. Al trobar-se a la carpeta /usr/sbin/ i seguint l'estàndard FHS es tracta d'un executable de superusuari. El podeu executar explícitament amb:

Aquest script s'ha d'executar quan:

Cal tenir en compte que per exemple, si el plugins s'insta·len (o es desinstal·len) com a paquets Debian s'utilitzen triggers o activadors o disparadors de paquets (vegeu deb-triggers). Un activador no és res més que un acció que s'executa quan succeïx algun esdeveniment, en el cas de gosa el esdeveniment s'executa cada cop que hi ha una modificació a la carpeta /usr/share/gosa/plugins

NOTA: Els triggers de paquets només succeïxen quan les modificacions a la carpeta /usr/share/gosa/plugins els realitza alguna aplicació de gestió de paquets com apt-get, dpkg o aptitude

Per exemple:

$ sudo apt-get remove gosa-plugin-kolab
S'està llegint la llista de paquets... Fet 
...
S'estan processant els activadors per a gosa …'
Updating class cache...
Updating internationalization...
! Warning: you may need to reload your webservice!
Updating master image for theme  
...

El activador precisament el que fa és executar l'script update-gosa.

Els següents paràmetres es poden utilitzar amb l'ordre update-gosa:

  • install dsc: Instal·lar un plugin utilitzanr la informació del fitxer dsc proporcionat. TODO provar, no em funcionava
  • remove plugin: Remove the plugin named "plugin" from the current configuration. TODO provar, no em funcionava
  • list: Mostra la llista de plugins instal·lats. Important! només mostra els plugins instal·lats mitjançant l'ordre udpate-gosa install, si teniu plugins instal·lats per paquets Debian no apareixeran a la llista. Vegeu /usr/share/gosa/state i update-gosa install/update-gosa list
  • rescan-i18n: Torna a construir les traduccions
  • rescan-classes: Torna a construir la cache de classes d'objectes PHP (consulteu Autoload)

Per defecte si s'executa sense paràmetres les accions que es realitzen són (en l'ordre indicat):

  • rescan-classes: S'executa la funció rescan_classes()
  • rescan-i18n: S'executa la funció rescan_i18n();
  • rescan_images: Finalment per a cada tema instal·lat es reescanegen les imatges

Tal i com es pot observar a el cos principal de l'script update-gosa és:

 switch ($argv[1]){
        case 'install':
                if (isset($argv[2])){
			install_plugin($argv[2]);
		} else {
			echo "Usage: update-gosa install dsc-file\n\n";
			exit (1);
		}
                break;
        case 'list':
                list_plugins();
                break;
        case 'remove':
                if (isset($argv[2])){
			remove_plugin($argv[2]);
		} else {
			echo "Usage: update-gosa remove plugin-name\n\n";
			exit (1);
		}
                break;
        case 'rescan-i18n':
                rescan_i18n();
                break;
        case 'rescan-classes':
                rescan_classes();
                break;
        case 'rescan-images':
                foreach (get_themes() as $theme) {
                  rescan_images("html", $theme);
                }
                break;
        default:
                echo "Error: Supplied command not known\n\n";
                print_usage();
                break;
}

Vegeu també el manual de l'ordre:

$ man update-gosa 
UPDATE-GOSA(1)                                                       User Contributed Perl Documentation                                                      UPDATE-GOSA(1)

NAME
      update-gosa - class cache updater and plugin manager for GOsa

SYNOPSIS
      update-gosa [OPTION]

DESCRIPTION
      update-gosa is a script that help you to manage your gosa instance

      install dsc       Install the plugin using the dsc information placed in the plugin source directory.
      remove plugin     Remove the plugin named "plugin" from the current configuration.
      list              Lists installed plugins
      rescan-i18n       Rebuilds the translations
      rescan-classes    Rebuilds the class list

BUGS
      Please report any bugs, or post any suggestions, to the GOsa mailing list <gosa-devel@oss.gonicus.de> or to <https://oss.gonicus.de/labs/gosa>

LICENCE AND COPYRIGHT
      This code is part of GOsa (<http://www.gosa-project.org>)

      Copyright (C) 2003-2009 GONICUS GmbH

      This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
      PARTICULAR PURPOSE.  See the GNU General Public License for more details.

perl v5.10.0                                                                     2009-09-17                                                                   UPDATE-GOSA(1)

update-gosa list

IMPORTANT: Només mostra els plugins instal·lats mitjançant update-gosa install, no us mostrarà plugins instal·lats mitjançant paquets Debian o instal·lats manualment

# sudo update-gosa list
Plugin		|Version |Description
----------------------------------------------------------------------------
systems		|2.6.8	 |System management base plugin
sudo		|2.6.8	 |Sudo manager

La informació dels plugins instal·lats la busca a la carpeta /usr/share/gosa/state, que és una carpeta intermediària que utilitzar l'ordre update-gosa install per instal·lar els plugins (els plugins realment acaben instal·lats a /usr/share/gosa/plugins)

A l'exemple anterior mostra els plugins sudo i systems per que són els que apareixen a la carpeta state:

# ls /usr/share/gosa/state/
sudo  systems

Si observeu el codi:

 function list_plugins()
{
        global $description, $versions;
        $count= 0;

        /* Load plugin list */
        load_plugins();

        /* Show plugins */
        foreach ($description as $name => $dsc){
                if ($count == 0){
                        echo "Plugin\t\t|Version |Description\n";
                        echo "----------------------------------------------------------------------------\n";
                }
                $ver= $versions[$name];
                echo "$name\t\t|$ver\t |$dsc\n";
                $count++;
        }

        /* Yell about non existing plugins... */
        if ($count == 0){
                echo "No plugins found...\n\n";
        } else {
                # Check for dependencies
                dependency_check();
                echo "\n";
        }
}

el mètode important és load_plugins:

 function load_plugins()
 {
        if (!is_dir(PLUGSTATE_DIR)){
                if (!mkdir (PLUGSTATE_DIR, 0755, TRUE)){
                        echo "Cannot create plugstate dir '".PLUGSTATE_DIR."' - aborted\n";
                        exit (2);
                }
        } 
        $dir= new DirectoryIterator(PLUGSTATE_DIR);
        foreach ($dir as $entry){
                if ($dir->isDir() && !preg_match('/^\./', $dir->__toString())){
                        $file= $dir->getPathName()."/plugin.dsc";
                        if (parse_ini($file) == ""){
                                echo "! Warning: plugin ".$dir->getPathName()." is missing declarations\n";
                        }
                }
        }
 }

on PLUGSTATE_DIR és:

define ("PLUGSTATE_DIR", GOSA_HOME."/state");

update-gosa install plugin.dsc

Serveix per instal·lar plugins des del codi font dels plugins de gosa (Codi font de gosa) que podeu trobar a:

[[1]]

Un exemple de com obtenir el codi font d'un plugin (en aquest cas el plugin de DHCP (consulteu DHCP i Ldap))

$ svn co https://oss.gonicus.de/repositories/gosa/trunk/gosa-plugins/dhcp dhcp

un cop teniu el plugin si el voleu instal·lar:

NOTA: Se suposa que ja teniu gosa instal·lat, ja que és una condició prèvia per tal de poder instal·lar un Plugin

$ cd dhcp
$ sudo update-gosa install plugin.dsc 
Installing plugin 'dhcp'...
Updating class cache...
Updating internationalization...
! Warning: you may need to reload your webservice!
Updating Online Help Index...

Aplique els canvis al servidor web Apache:

$ sudo /etc/init.d/apache2 reload

Ara podeu utilitzar el plugin anant a:

http://localhost/gosa

també podeu consultar que està instal·lat amb update-gosa list:

$ sudo update-gosa list
Plugin		|Version |Description
----------------------------------------------------------------------------
systems		|2.6.8	 |System management base plugin
dhcp		|2.6.8	 |DHCP service management plugin
sudo		|2.6.8	 |Sudo manager

IMPORTANT: La instal·lació del plugin no modifica en cap moment el fitxer /etc/gosa/gosa.conf i per tant la definició del plugin s0ha de fer igualment a aquest fitxer! Ara bé, cal tenir en compte que els plugins oficials de gosa ja estan tots definits al fitxer gosa.conf i simplement si el plugin no està instal·lat, aleshores no es mostra a gosa.

/usr/sbin/gosa-encrypt-passwords

TODO

Migracions i actualitzacions

Migrar de 2.6 a 2.7

Els passos seguits en un entorn de proves han estat:

Primer moure tots els fitxers 2.6 a carpetes diferents (copia de seguretat)

$ sudo mv /etc/apache2/conf.d/gosa.conf /etc/apache2/conf.d/gosa26.conf 
$ sudo joe /etc/apache2/conf.d/gosa26.conf 
$ sudo mv /usr/share/gosa /usr/share/gosa26
$ sudo mv /etc/gosa /etc/gosa26
$ sudo mv /var/spool/gosa /var/spool/gosa26
$ sudo mv /var/cache/gosa /var/cache/gosa26
$ cd  /etc/apache2/conf.d/
$ sudo rm gosa26.conf*
$ sudo ln -s /etc/gosa26/gosa-apache.conf gosa26.conf
$ sudo /etc/init.d/apache2 restart

Per tal que la copia funcioni també cal modificar codi font dels fitxers manin.php i setup.php i gosa.cong entre d'altres:

Cal canviar les carpetes /var/spool/gosa' /var/cache/gosa i /etc/gosa

$ cd /etc/gosa26
$ sudo grep -n "/var/spool/gosa" -r . | grep -v "~" | grep -v "svn"
$ cd /usr/share/gosa26
$ sudo grep -n "/var/spool/gosa" -r . | grep -v "~" | grep -v "svn"

Un cop la copia funciona, esborrem els paquets:

$ sudo apt-get remove --purge gosa-plugins_*
$ sudo apt-get remove --purge gosa*

Un cop tot esborrat canviem el fitxer /etc/apt/sources.list i canviem la línia:

deb http://oss.gonicus.de/pub/gosa/debian-etch/ ./

per:

deb http://oss.gonicus.de/pub/gosa/debian-squeeze/ ./

NOTA: Recordeu que per tal d'instal·lar Gosa 2.7 cal com a mínim Ubuntu 10.04

Ara instal·lem gosa

$ sudo apt-get install gosa
$ sudo apt-get install gosa-plugin-*
$ sudo apt-get install gosa-help-en gosa-dev gosa-schema

I anem a :

http://IP_SERVIDOR/gosa

i procedim a la instal·lació.

Si ja teniu els esquemes de 2.6 instal·lats us caldrà actualitzar, el propi instal·lador us dirà:

   * gosaObject has version 2.6.1 but >=2.7 is required!
   * gosaAccount has version 2.6.6 but >=2.7 is required!
   * gosaLockEntry has version 2.6.1 but >=2.7 is required!
   * gosaDepartment has version 2.6.1 but >=2.7 is required!
   * gosaCacheEntry has version 2.6.1 but >=2.7 is required!
   * gosaConfig has version 2.6 but >=2.7 is required!

Tasques especifiques de migració a l'Institut de l'Ebre

Adaptacions de codi

PEr ser més endreçat ho farem tot a un Plugin anomenat HighSchooUsersManagment que és una copia (amb les adaptacions necessàries) del plugin de usersManagment. El plugin es troba a:

/usr/share/gosa/plugins/admin/HighSchoolUsers

Per activar el plugin només cal modificar gosa.conf

 <plugin acl="users/environment,users/posixAccount,users/kolabAccount,users/phpscheduleitAccount,users/proxyAccount,users/connectivity,users/pureftpdAccount,users/phpgwAccount,users/opengwAccount,users/pptpAccount,users/intranetAccount,users/webdavAccount,users/nagiosAccount,users/sambaAccount,users/groupware,users/mailAccount,users/user,users/password,users/gofaxAccount,users/phoneAccount,users/Groupware"
           class="HighSchoolUserManagement" />

Creació d'usuaris a partir de plantilles

No cal posar els shortcuts nou alumne | nou profe

Vegeu:

Gosa#Formularis_de_matr.C3.ADcula_r.C3.A0pida_.28nou_alumne_.7C_nou_profe.29

Accedir a Gosa

Per accedir a Gosa heu d'obrir el navegador i anar a la web:

http://localhost/gosa

Configurar Gosa

El primer cop que accediu a Gosa s'iniciarà l'assistent de configuració (la captura és de la versió 2.6):

Gosa.png

El primer pas és per seguretat. Executeu a la màquina on teniu instal·lat Gosa:

$  echo -n 10032aa8538451a67fc1b4cc7be3f7a6 > /tmp/gosa.auth

Escolliu l'idioma:

Gosa1.png

L'instal·lador comprovara que la vostra configuració del sistema sigui la correcta. Si apareix algun error cal solucionar-lo abans de continuar amb la instal·lació. Els Warnings no cal solucionar-los, però el que cal instal·lar és:

$ sudo apt-get install php5-snmp
$ sudo apt-get install cups
$ sudo apt-get install php-pear
$ sudo pear upgrade pear
$ sudo pear install Auth-1.6.1
$ sudo /etc/init.d/apache2 restart

Si hi ha un error de límit de memòria baix de php, només cal modificar el paràmetre al fitxer php.ini:

$ sudo joe /etc/php5/apache2/php.ini 
$ sudo /etc/init.d/apache2 restart

Gosa2.png

Acceptem la llicència.

Configurem l'accés a Ldap:

Gosa3.png

En aquest punt és quan hem d'instal·lar els esquemes de Gosa al nostre Ldap. Els esquemes ens els proporciona el paquet:

$ sudo apt-get install gosa-schema

Els esquemes han esta col·locats a la carpeta d'esquemes del servidor Ldap

$ sudo dpkg -L gosa-schema | grep schema
/etc/ldap/schema
/etc/ldap/schema/goconfig.schema
/etc/ldap/schema/gofax.schema
/etc/ldap/schema/gofirewall.schema
/etc/ldap/schema/gofon.schema
/etc/ldap/schema/gosa+samba3.schema
/etc/ldap/schema/gosa.schema
/etc/ldap/schema/goserver.schema
/etc/ldap/schema/gosystem.schema
/etc/ldap/schema/goto-mime.schema
/etc/ldap/schema/goto.schema

Ara només falta afegir-los al fitxer de configuració de ldap:

$ sudo joe /etc/ldap/slapd.conf

I afegim les línies:

# Schemas de Gosa
include /etc/ldap/schema/goconfig.schema
include /etc/ldap/schema/gofax.schema
include /etc/ldap/schema/gofirewall.schema
include /etc/ldap/schema/gofon.schema   
include /etc/ldap/schema/goserver.schema
include /etc/ldap/schema/gosystem.schema
include /etc/ldap/schema/goto.schema
include /etc/ldap/schema/gosa+samba3.schema

Just després de:

# Schema and objectClass definitions
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema

També cal seguir les passos de Configuració de Ldap per suportar Samba per afegir suport Samba a Ldap.

Els esquemes que s'han de tenir finalment són:

# Schema and objectClass definitions
include         /etc/ldap/schema/core.schema  
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema 

#Schema de Ldap
include         /etc/ldap/schema/samba.schema 

# Schemas de Gosa
include /etc/ldap/schema/goconfig.schema
include /etc/ldap/schema/gofax.schema
include /etc/ldap/schema/gofirewall.schema
include /etc/ldap/schema/gofon.schema   
include /etc/ldap/schema/goserver.schema
include /etc/ldap/schema/gosystem.schema
include /etc/ldap/schema/goto.schema
include /etc/ldap/schema/gosa+samba3.schema

Podeu comprovar que el fitxer de configuració de Ldap és correcte amb:

$ sudo slaptest

Cal reiniciar Ldap per aplicar els nous esquemes:

$ sudo /etc/init.d/slapd restart

Les següents pàgines són de configuració de Gosa. Podeu deixar les opcions per defecte:

Gosa5.png

Gosa6.png

Gosa7.png

Ara Gosa s'encarrega d'inspeccionar l'arbre Ldap per veure si hi ha algun problema. Segurament us caldrà crear l'usuari admin de Gosa:

Gosa8.png

Gosa10.png

Gosa11.png

L'últim pas és descarregar el fitxer de configuració i establir els permisos

Gosa12.png

Per exemple des de una màquina remota per copiar el fitxer gosa.conf

$ scp gosa.conf root@192.168.1.3:/etc/gosa

Si és a la màquina local i s'ha descarregat a per exemple downloads:

$ sudo cp downloads/gosa.conf /etc/gosa

Establiu els permisos:

$ sudo chown root.www-data /etc/gosa/gosa.conf
$ sudo chmod 640 /etc/gosa/gosa.conf

Ara ja podem accedir amb l'usuari admin que acabem de configurar.

Configuració de la versió 2.7

A la versió 2.7 el fitxer de configuració gosa.conf s'ha simplificat molt. A més hi ha una eina gràfica per configurar gosa:

propertyEditor

El trobareu a la secció Addons > Preferences

Us donarà un missatge tipus:

Attention

Modifying properties may break your setup, destroy or mess up your LDAP database, lead to security holes or it can even make a login impossible! Since configuration 
properties  are stored in the LDAP database a copy/backup can be handy.

If you've debarred yourself, you can try to set 'ignoreLdapProperties' to 'true' in your gosa.conf main section. This will make GOsa ignore LDAP based property values. 

IMPORTANT: Sembla doncs que ara la configuració es guarda al propi Ldap. Per tant si fem copies del servidors Ldap també fem copies de la configuració de Gosa


Fitxer de configuració /etc/gosa/gosa.conf

El fitxer disposa d'un manual:

$ man gosa.conf

El fitxer normalment és troba a:

/etc/gosa/gosa.conf

El fitxer està en format XML. Aquest fitxer es crear durant la instal·lació, de fet el final de l'assistent el que fa és proporcionar-vos un fitxer gosa.conf que s'ha de descarregar i instal·lar a /etc/gosa/gosa.conf.

Per tornar a crear-lo, només cal esborrar-lo (millor si el moveu fent una còpia del que tenieu) i tornar a executar la instal·lació. Consulteu:

Gosa#Tornar_a_configurar_Gosa_.28o_actualitzar.29

idGenerator al fitxer de configuració gosa.conf

$ man gosa.conf
...
idGenerator string

      The idGenerator statement describes an automatic way to generate new user ids. There are two basic functions supported - which can be combined:

       a) using attributes

          You can specify LDAP attributes (currently only sn and givenName) in
          braces {} and add a percent sign befor it. Optionally you can strip it
          down to a number of characters, specified in []. I.e.

            idGenerator="{%sn}-{%givenName[2-4]}"

          will generate an ID using the full surname, adding a dash, and adding at
          least the first two characters of givenName. If this ID is used, it'll
          use up to four characters. If no automatic generation is possible, a
          input box is shown.

       b) using automatic id's

          I.e. specifying

            idGenerator="acct{id:3}"

          will generate a three digits id with the next free entry appended to
          "acct".

            idGenerator="acct{id!1}"

          will generate a one digit id with the next free entry appended to
          "acct" - if needed.

            idGenerator="ext{id#3}"

          will generate a three digits random number appended to "ext".


Vegeu un exemple d'ús a:

Highschoolusers#idGenerator._Generador_de_noms_d.27usuari

Configurar Gosa a Debian. Esquemes a servidor Ldap sense cn=config

NOTA: Segurament obsolet. Vegeu els apartats anteriors

Abans que res cal afegir els esquemes al servidor Ldap:

$ sudo apt-get install gosa-schema

Els esquemes han estat col·locats a la carpeta d'esquemes del servidor Ldap

$ sudo dpkg -L gosa-schema | grep schema
/etc/ldap/schema
/etc/ldap/schema/goconfig.schema
/etc/ldap/schema/gofax.schema
/etc/ldap/schema/gofirewall.schema
/etc/ldap/schema/gofon.schema
/etc/ldap/schema/gosa+samba3.schema
/etc/ldap/schema/gosa.schema
/etc/ldap/schema/goserver.schema
/etc/ldap/schema/gosystem.schema
/etc/ldap/schema/goto-mime.schema
/etc/ldap/schema/goto.schema

Ara només falta afegir-los al fitxer de configuració de ldap:

$ sudo joe /etc/ldap/slapd.conf

I afegim les línies:

# Schemas de Gosa
include /etc/ldap/schema/goconfig.schema
include /etc/ldap/schema/gofax.schema
include /etc/ldap/schema/gofirewall.schema
include /etc/ldap/schema/gofon.schema   
include /etc/ldap/schema/goserver.schema
include /etc/ldap/schema/gosystem.schema
include /etc/ldap/schema/goto.schema
include /etc/ldap/schema/gosa+samba3.schema

Just després de:

# Schema and objectClass definitions
include         /etc/ldap/schema/core.schema
include         /etc/ldap/schema/cosine.schema
include         /etc/ldap/schema/nis.schema
include         /etc/ldap/schema/inetorgperson.schema

També cal afegir l'esquema de Samba. Consulteu Configuració de Ldap per suportar Samba.

A la primera finestra de la configuració web veurem si ens falta algun mòdul de PHP5.

Podem consultar els mòduls instal·lats:

$ dpkg -l | grep php5

Per exemple si es queixa de alta de suport d'IMAP hem d'instal·lar el paquet:

$ sudo apt-get install php5-imap

Configuració de la creació de comptes

TODO

Extret de (en un gosa versió 2.7)

$ man gosa.conf
...
Account creation options
      uidNumberBase integer
      The uidNumberBase statement defines where to start looking for a new free user id. This should be synced with your adduser.conf to
      avoid overlapping uidNumber values between local and LDAP based lookups. The uidNumberBase can even be dynamic. Take a look at the
      baseIdHook definition below.
      gidNumberBase integer
      The gidNumberBase statement defines where to start looking for a new free group id. This should be synced with  your  adduser.conf
      to  avoid overlapping gidNumber values between local and LDAP based lookups. The gidNumberBase can even be dynamic. Take a look at
      the nextIdHook definition below.
      idAllocationMethod traditional/pool
      The idAllocationMethod statement defines how GOsa generates numeric user and group id values. If it is  set  to  traditional  GOsa
      will  do  create  a  lock and perform a search for the next free ID. The lock will be removed after the procedure completes.  pool
      will use the sambaUnixIdPool objectclass settings inside your LDAP. This one is unsafe, because it does not check  for  concurrent
      LDAP access and already used IDs in this range.  On the other hand it is much faster.
      minId integer
      The  minId statement defines the minimum assignable user or group id to avoid security leaks with uid 0 accounts. This is used for
      the traditional method
      uidNumberPoolMin/gidNumberPoolMin integer
      The uidNumberPoolMin/gidNumberPoolMin statement defines the minimum assignable user/group id for use with the pool method.
      uidNumberPoolMax/gidNumberPoolMax integer
      The uidNumberPoolMax/gidNumberPoolMax statement defines the highest assignable user/group id for use with the pool method.
      nextIdHook path
      The nextIdHook statement defines a script to be called for finding the next free id for users or groups externaly. It gets  called
      with the current entry "dn" and the attribute to be ID'd. It should return an integer value.
      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.
      idGenerator string
      The idGenerator statement describes an automatic way to generate new user ids. There are two basic functions supported - which can
      be combined:
       a) using attributes
          You can specify LDAP attributes (currently only sn and givenName) in
          braces {} and add a percent sign befor it. Optionally you can strip it
          down to a number of characters, specified in []. I.e.
            idGenerator="{%sn}-{%givenName[2-4]}"
          will generate an ID using the full surname, adding a dash, and adding at
          least the first two characters of givenName. If this ID is used, it'll
          use up to four characters. If no automatic generation is possible, a
          input box is shown.
       b) using automatic id's
          I.e. specifying
            idGenerator="acct{id:3}"
          will generate a three digits id with the next free entry appended to
          "acct".
            idGenerator="acct{id!1}"
          will generate a one digit id with the next free entry appended to
          "acct" - if needed.
            idGenerator="ext{id#3}"
          will generate a three digits random number appended to "ext".

Política de paraules de pas

Amb les paraules clau:

passwordMinLength
passwordMinDiffer

Del fitxer gosa.conf a la secció main, podeu especificar unes polítiques bàsiques de paraula de pas.

NOTA: Les restriccions només s'apliquen als usuaris i no pas als administrados que poden posar la paraula de pas que vulguin a qualsevol usuari

Com activar la proposta de paraules de pas

Cal modificar el fitxer /etc/gosa/gosa.conf i posar el paràmetre passwordProposalHook. Segons el manual:

$ man gosa.conf | grep -A 5 passwordProposalHook
...
      passwordProposalHook command

      The passwordProposalHook can be used to let GOsa generate password proposals for you.  Whenever you change a password, you can then decide 
      whether
      to use the proposal or to manually specify a password.

      /usr/bin/apg -n1

Per exemple podeu utilitzar l'ordre mkpasswd:

$ sudo joe /etc/gosa/gosa.conf
...
<main default="default" warnSSL="true" forceSSL="false" forceGlobals="true" ignoreLdapProperties="false" rfc2307bis="false"
       passwordProposalHook="/usr/bin/mkpasswd -s go">
   <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="PARAULA DE PAS"/>
   </location>
 </main>
...

O com apareix al manual de gosa podeu utilitzar l'ordre apg.

IMPORTANT: Recordeu utilitzar l'ordre update-gosa després de cada canvi al fitxer de configuració. A més, us caldrà sortir de la aplicació i tornar a entrar.

Com canviar la paraula de pas de l'usuari admin de gosa?

Per canviar la paraula de pas de l'usuari admin de gosa hem d'utilitzar alguna eina com ADS


El primer pas serà iniciar el ADS per poder accedir al localhost del nostre servidor.

Cap4.png

Un cop dins despleguem la pestanya on posa DIT per observar el que conté, dintre d'aquest apartat trobarem el ROOT DSE.

A continuació fem el mateix amb la pestanya Root DSE, fem doble clic per obrir-ho, al qual trobarem el dc nostre, en aquest cas "iesebre".

Ara continuem desplegant la pestanya dc=iesebre,dc=com

Finalment dins de dc=iesebre,dc=com trobarem l'apartat ou=people(1), on conté tota la informació dels usuaris, en el nostre cas nomes tenim el admin (cn=System Administrator-).

Si fem doble clic damunt UserPassword cn=System Administrator-admin,ou=people,dc=iesebre,dc=com, s'obrirà la següent finestra:

Cap1.png

A continuació entrem a la pestanya "New Password", on trobarem unes caselles que hem d'omplir.

Cap2.png

En la primera casella introduirem la nova contrasenya, en la segona seleccionem el mètode de la contrasenya, i per acabar la ultima casella ens mostra la contrasenya codificada i oculta.

Per acabar fem clic a "OK" on es guardaran els canvis realitzats.

Per acabar comprovem que els canvis s'hagin realitzat, i que podem accedir al gosa amb la nova contrasenya.

Com recuperar els permisos (ACL) d'administració per a un usuari?

Si em fet canvis a les ACL i per error hem perdut els permisos d'administració podem posar el següent al fitxer gosa.conf:

 ignoreAcl="your user's dn"

I això ens permetrà entrar com administrador amb el dn indicat.

Com crear la home dinàmicament a partir del nom d'usuari (/home/%uid)

Es pot fer definint el valor de la home a una plantilla de la següent manera:

/home/%uid

On %uid es substituirà pel valor del username de forma dinàmica al crear un usuari utilitzant aquesta plantilla.

Es pot fer quelcom similar amb altres camps com el correu electrònic:

%sn.%givenName@domini.com

Canviar paraula de pas de gosa sense fer login a Gosa

Es pot fer posant la URL:

http://your.admin.server/gosa/password.php?uid=cajus&method=md5&directory=GONICUS+GmbH

NOTA: Cal saber la paraula de pas antiga per tal de poder-la modificar

Password hash

IMPORTANT: No utilitzar CRYPT, format no suportat per Google Apps --> si s'utilitza no es poden migrar usuaris a Google Apps

idGenerator. Generador de noms d'usuari

NOTA: Eliminar (--acacha 16:39, 13 juny 2011 (UTC)). Crear un generador més simple i fixe: nom+cognomX on X és un enter de 1-99 que només apareix si nomcognom o nomcognomX-1 està ocupat. No S'utilitzar idGenerator

La proposta de nom d'usuari (login) que apareix al formulari previ a guardar l'alumne (quan s'escull una plantilla) es calcula a partir del valor idGenerator del fitxer /etc/gosa/gosa.conf. Per exemple:

idGenerator="{%givenName}{%sn1}"

Consulteu també Gosa#idGenerator_al_fitxer_de_configuraci.C3.B3_gosa.conf


Gosa hooks

Hi ha de diferents tipus, per exemple es poden crear hooks de plugins, del manual:

$ man gosa.conf
...

Defining a plugin

      Open a <plugin> tag including a class attribute. The class should be present inside your GOsa setup - the entry will be ignored if it is not.

      Plugins should have an acl entry, that allows GOsa to decide wether a user is allowed to see a plugin or not.  The acl string matches with an  ACL
      definition done inside of GOsa.

      You can override an icon by specifying the icon attribute.

      For  every  plugin, you can provide at least seven additional hooks: precreate, preremove, premodify postcreate, postremove, postmodify and check.
      These can be used to perform special actions when a plugins gets a create, delete, modify or check request. As a parameter, these keywords  get  a
      shell script or program to the task.
  The create / delete / modify keywords

      These  keywords  take a full executable path of a script. You can provide certain parameters in form of LDAP attributes. '%uid' will pass the cur‐
      rent user id, '%dn' the current object dn, etc.

      The script gets executed before(pre) and after(post) create, delete or modify tasks.

      The check keyword

      This keyword takes a full executable path of a script. Check is triggered after you press the -I "Apply" or -I  "OK"  button.  The  complete  LDAP
      entry  as  it  will  be  written to the LDAP is passed to your script. If parts of the entry do not match some logic of your script, just print an
      error message to STDOUT. GOsa will show this message and abort the current process of saving the entry to the LDAP.

Ús de gosa

Com els usuaris es poden canviar la seva paraula de pas ?

http://EL_VOSTRE_SERVIDOR/gosa/password.php

Si dona l'error:

You have no permissions to change your password.

Cal assignar una ACL a l'usuari que li permeti canviar la paraula de pas. Consulteu:

Gosa#Exemple._Crear_un_ACL_que_permeti_als_usuaris_canviar-se_la_paraula_de_pas_i_nom.C3.A9s_consultar_les_seves_dades

ACLs

A partir de la versió 2.6:

http://oss.gonicus.de/screencasts/acl.html

Roles

Un rol és:

  • Una llista de ACLs
  • No estan assignats a cap objecte LDAP
  • No té membres
  • Conté el scope del ACL
  • Conté les configuracions single de la ACL
  • Permet reutilitzar ACLS a diferents objectes LDAP
Per crear un Rol: ACL > Actions > Create Role 
  • Grant permission to owner: Tots els membres d'una ACL tenen una llista de permisos. Per exemple poder modificar la paraula de pas. Tothom del grup pot canviar la paraula de pas que qualsevol membre del grup excepte si marquem aquesta opció.


Un cop definit un rol es pot utilitzar al definir un ACL. Es va a l'objecte LDAP al qual es vol afegir una rol i s'afegeix un ACL. Al tipus d'ACL cap seleccionar:

Use ACL defined in role

Ara en compte de sortir les categories sortiran la llista de roles.

Exemple. Crear un ACL que permeti als usuaris canviar-se la paraula de pas i només consultar les seves dades

Cal anar a l'apartat ACL (Control de acceso) de gosa i anar a l'arrel del sistema Ldap.

Primer cal crear el role, podeu crear-los directament a l'arrel Ldap o posar-los a una unitat organitzativa anomenada Roles. Estan dins de l'apartat ACLs (Control de acceso) anem al botó Accions i creem un nou rol. Li poseu el nom que vulgueu, per exemple Usuaris. Feu clic al botó

Nueva ACL

Al tipus de ACL poseu

Complete subtree

Busqueu la secció usuaris i l'editeu. Busqueu l'apartat:

Objeto: Parámetros genéricos del usuario

I marqueu els checkboxs:

  • Restrict changes to user's own object
  • read

Busque també la secció:

Objeto: User password

i marqueu:

  • Restrict changes to user's own object
  • read
  • write

Ja podeu guardar el role. feu Apply, un altre cop Apply i ok. Ara cal definir a on apliquem aquest rol. Aneu a la unitat organitzativa ("carpeta Ldap") on voleu aplicar a tots els usuaris que estiguin a aquella carpeta o subcarpetes permisos per modificar-se la paraula de pas i pugueu a la seva carpeta pare. Editeu la unitat organitzativa (tot això ho heu de fer a l'apartat Departaments o Directory Structure) i editeu la pestanya:

ACL

Feu clic al botó

Nueva ACL

Al tipus escolliu:

Utilitzar las ACL definidas en el rol

Poseu:

Usar miembros de: Groups

i escolliu:

All Users

Assegureu-vos que a l'apartat:

Available Roles

Escolliu el rol que heu creat al pas anterior.

I l'afegiu a miembros. Feu clic a Apply i Ok. Ja ho teniu configurat.

Grups dinàmics (dynamic groups)

NOTA: Fins la versió 2.6 era un addon del contrib de gosa, a la versió 2.7 va incorporat de sèrie

Per tal d'implementar els grups dinàmics s'utilitzen les:

dynlist overlay de openldap

Es pot afegir una ACL si no voleu que els usuaris puguin modificar els membres d'un grup (valors memberUid):

# Disable modify on memberUid for all entries which contains
# gosaGroupOfURLs, because these are dynamic, and we do not want users to
# edit the memberUid attribute.
access to filter="objectClass=gosaGroupOfURLs" attrs=memberUid
by * read

NOTA: Només s'aplicarà a gosa si gosa utilitza un compte i no pas el rootdn

Cal verificar que teniu als esquemes l'objecte gosaGroupOfURLs

Es pot afegir a gosa-samba3:

objectclass ( 1.3.6.1.4.1.10098.1.2.1.19.21
     NAME 'gosaGroupOfURLs'
     DESC 'Allow a group to be populated through a labeledURI values'
     SUP top
     AUXILIARY
     MAY ( labeledURI ) )

O millor instal·lar l'esquema: gosa-dyngroup.schema.


FAQ

Què és rfc2307bis?

És un esquema que substitueix a NIS. Normalment (al menys al meu cas) no es necessita activar durant la instal·laciói configuració inicial de Gosa

Plugins

/usr/share/gosa/plugins

Aquesta és la carpeta on s'instal·len els plugins de Gosa.

Instal·lació

Dels fitxers de postinst de Debconf dels paquets d'instal·lació de plugins de Gosa a Debian podeu veure que:

#!/bin/sh
# postinst script for gosa-plugin-kolab
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package


case "$1" in
    configure)
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.



# Get apache versions running
servers=""
for srv in apache apache-ssl apache2; do
        if [ -x /usr/sbin/$srv ]; then
                servers="$srv $servers"
        fi
done

# Update gosa
update-gosa

# Finally restart servers
for server in $servers; do
        if [ -x /usr/sbin/invoke-rc.d ]; then
                invoke-rc.d $server restart
        else
                /etc/init.d/$server restart
        fi
done



exit 0

És a dir, per instal·lar un plugin cal posar-lo a la carpeta:

/usr/share/gosa/plugins

I després fer:

$ sudo update-gosa

I reiniciar Apache:

$ sudo /etc/init.d/apache2 reload

gosa-plugin-glpi

Sembla que es va abandonar amb la versió 2.7 de Gosa:

# Glpi was dropped in 2.7
#gosa/plugins/admin/systems/services/glpi https://oss.gonicus.de/repositories/gosa/trunk/gosa-plugins/glpi/admin/systems/services/glpi
#gosa/locale/plugins/glpi https://oss.gonicus.de/repositories/gosa/trunk/gosa-plugins/glpi/locale
#gosa/doc/plugins/glpi https://oss.gonicus.de/repositories/gosa/trunk/gosa-plugins/glpi/help
#gosa/html/plugins/glpi https://oss.gonicus.de/repositories/gosa/trunk/gosa-plugins/glpi/html
#gosa/contrib/plugins/glpi https://oss.gonicus.de/repositories/gosa/trunk/gosa-plugins/glpi/contrib

Al trunk ja no hi és...

En canvi es pot trobar a:

https://oss.gonicus.de/labs/gosa/browser/tags/2.6.11/gosa-plugins/glpi

Extret de:

https://oss.gonicus.de/labs/gosa/browser/trunk/gosa-all

El codi antic es po aconseguir a:

http://oss.gonicus.de/pub/gosa/gosa-plugin-glpi-2.6.11.tar.gz

gosa-goto

System deployment status

gosa-si

Sense gosa-si no hi ha suport per a missatgeria!? però:

$  sudo apt-get install gosa-si-server

Dona l'error:

E: El paquet gosa-si-server no té candidat d'instal·lació

gosa-desktop

S'instal·la en clients que hagin d'utilitzar gosa i que tinguin entorn gràfic.

$ sudo apt-get install gosa-desktop

NOTA: No ho instal·leu a un servidor sense entorn gràfic ja que instal·larà totes les llibreries gràfiques necessàries...

Si us fixeu en el fitxers instal·lats:

$ dpkg -L gosa-desktop
/.
/etc
/etc/gosa
/etc/gosa/desktoprc
/usr
/usr/bin
/usr/bin/gosa
/usr/share
/usr/share/pixmaps
/usr/share/pixmaps/gosa-16.xpm
/usr/share/pixmaps/gosa.xpm
/usr/share/applications
/usr/share/applications/gosa.desktop
/usr/share/doc
/usr/share/doc/gosa-desktop
/usr/share/doc/gosa-desktop/changelog.Debian.gz
/usr/share/doc/gosa-desktop/copyright
/usr/share/menu
/usr/share/menu/gosa-desktop
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/gosa.1.gz

L'únic que us instal·la són un enllaç directe al menú Aplicacions > Eines de Sistema i també la possibilitat d'executar l'ordre:

$ gosa

I que us obri el navegador amb el gosa. Es pot definir quina URL cal obri modificant, segons el manual:

$ man gosa
...
      Presetting the URL works by placing something like URL="http://admin.example.net" inside one of these files:
      /etc/gosa/desktoprc        system wide setting
      $HOME/.gosa-desktop        user specific setting

FAI

$ sudo apt-get install gosa-plugin-fai gosa-plugin-fai-schema

Com podeu veure hi ha esquemes Ldap implicats que s'hauran d'instal·lar:

$ dpkg -L gosa-plugin-fai-schema 
...
/etc/ldap/schema/gosa/fai.schema

Així el primer pas a dur a terme és instal·lar aquest esquema al servidor Ldap i caldrà convertir-lo a ldif si treballem amb el nou format del fitxer de configuració de Ldap. Els passos a seguir per instal·lar l'schema són:

Primer cal convertir l'schema. Es pot fer utilitzant l'ordre slaptest. Primer creeu un fitxer:

$ cd
$ joe schema_convert.conf
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/gosa/fai.schema

I ara creeu una carpeta per guardar el resultat de la conversió:

$ mkdir ldif_result

Ara executeu la conversió amb:

$ slaptest -f schema_convert.conf -F ldif_result 
config file testing succeeded

Ara cal copiar el fitxer d'schema amb el nou format a la carpeta de configuració de Ldap:

$ sudo cp ldif_result/cn\=config/cn\=schema/cn\=\{3\}fai.ldif /etc/ldap/slapd.d/cn\=config/cn\=schema
$ sudo su -
# cd /etc/ldap/slapd.d/cn\=config/cn\=schema

Ara cal que li canvieu el número (poseu el primer número que tingueu lliure) i arregleu els permisos:

# mv cn\=\{3\}fai.ldif cn\=\{19\}fai.ldif
# chown openldap:openldap *

Ara apliqueu els canvis reiniciant el servidor Ldap:

# exit
$ sudo /etc/init.d/slapd restart

NOTA: Amb el format antic de Ldap només calia afegir la línia: include /etc/ldap/schema/gosa/dhcp.schema al fitxer de configuració de Ldap

Vegeu també:

goPDC

Del README:

 GOpdc support scripts
---------------------

These scripts are meant to be used to help to build up a Samba PDC. Minimum
requirement is Samba 3.0.x. They are meant as a replacement of the smbldap-tools.
The main goal of writing GOpdc was to simplify the setup of Samba DC, the
code itself should be really easy to read and to maintain. This was one of the
main reasons against perl as the primary scripting language. Using GOpdc
enables you to use the standard Windows administration utils, but
nonetheless you should consider using GOsa (http://oss.gonicus.de) because
its really fun and your Windows admins will like it, promised :)

Some options are currently missing, but everything to use GOpdc as support
scripts for Samba is there.

To use these scripts you have to setup your samba server as follows:

Install the components with the provided install script or use the provided
packages and then add the follwing configuration options to your smb.conf:

add user script = /usr/share/gopdc/gopdc.php4 -adduser "%u"
add machine script = /usr/share/gopdc/gopdc.php4 -addmachine "%u"
add group script = /usr/share/gopdc/gopdc.php4 -addgroup "%g"
add user to group script = /usr/share/gopdc/gopdc.php4  -usr2grp "%u" "%g"

delete user script = /usr/share/gopdc/gopdc.php4 -deluser "%u"
delete group script = /usr/share/gopdc/gopdc.php4 -delgroup "%g"
delete user from group script = /usr/share/gopdc/gopdc.php4 -usrFgrp "%u" "%g"

Alter the paths to your needs. Next step should be to configure the
gopdc.conf according to your site:


Overview over GOpdc options:
<option name="smb_domain" value="GONICUS"/>
This parameter controls the primary domain for which GOpdc should alter entries.

<option name="ux_uid" value="1001"/>
<option name="ux_gid" value="1001"/>
These are "starting points" for next user and group ids

<option name="ux_homedir" value="/home"/>
Defines the users homedirectory

<option name="add_prim_group" value="false"/>
Adds a group to every user and sets its primary group to this group. Beware that this
will break "usrmgr"!

<option name="add_prim_smb" value="false"/>
Adds Samba Attributes to users primary group. This is only valid with add_prim_group=true.
This option will normally break usrmgr.exe!

<option name="user_prim_domain" value="true"/>
Adds new users to group "Domain Users". Only valid if add_prim_group=false!

<option name="add_samba_attr" value="false"/>
Adds Samba attributes to every new object. This will break "usrmgr".

<option name="verify_rid" value="false"/>
Verify that RID is not already used. Makes really only sense if add_samba_attr=true and/or add_prim_smb=true.
You may enable this if you vampired (net rpc vampire) your domain and have not enough IDs left.

<option name="mach_own_grp" value="false"/>
If set to true, GOpdc will try to find the "domain machines" group (${SID}-516) und will use this as the
primary group for new machines. Beware that if the "domain machines" does not exist, an error will occur.
		
<option name="add_id_map" value="true"/>
Adds sambaIdMapEntry ObjectClass to samba Accounts. Same prerequisite as above.

<option name="add_gosa_acct" value="true"/>
Add gosaAccount objectClass to new entries? This is neccessary if you want to manage your newly created
accounts with GOsa. Should always true ;)

LDAP Part of configuration:
<option name="ldap_host" value="localhost"/>
Defines where your LDAP Server is running. This one accepts only one entry: the master LDAP.

<option name="ldap_base" value="dc=gonicus,dc=de"/>
The base of the LDAP-Tree.

<option name="ldap_binddn" value="cn=smbadmin,dc=gonicus,dc=de"/>
Bind to ldap_host as given user (Must be complete Bind-DN as used in shell tools).

<option name="ldap_pass" value="gonicus"/>
The related password to bind with.

<option name="ldap_tls" value="false" />
Whether to use TLS to connect to LDAP Server. Should always be performed if
LDAP server is not bound to "localhost", default is disabled.

<option name="ldap_port" value="389"/>
The port to connect to, default is "389".

<option name="ldap_prot" value="3"/>
LDAP protocol version to use (Valid values are 1, 2, 3), should normally always
be "3" which is the default.

<option name="ldap_suf_user" value="ou=people"/>
Suffix for users. Will be prepended to base, presets to base if not set
(Above Example means complete suffix will be "ou=people,dc=gonicus,dc=de").

<option name="ldap_suf_group" value="ou=groups"/>
Suffix for groups. Will be prepended to base, presets to base if not set
(Same as for ldap_suf_user).

<option name="ldap_suf_mach" value="ou=Winstations,ou=systems"/>
Suffix for machines. Will be prepended to base, presets to base if not set.
(Same as for ldap_suf_user).

<option name="ldap_replica_sleep" value="5"/>
Will delay GOpdcs exit for the given value in seconds. This option allows replicated
LDAP Servers to catch up.

Features Subsection:
<option name="create_users" value="true"/>
<option name="delete_users" value="true"/>
<option name="create_machines" value="true"/>
<option name="create_groups" value="true"/>
<option name="delete_groups" value="true"/>
<option name="mod_groups" value="true"/>
Controls whether the desired part will be added/deleted or modified
(Example create_users means to create a POSIX account for user).

Postexec:	
<option name="post_exec_user" value="/usr/sbin/nscd -i"/>
<option name="post_exec_mach" value="/usr/sbin/nscd -i"/>
<option name="post_exec_grup" value="/usr/sbin/nscd -i"/>
Execute command after operation. Beware that theres currently NO error condition
checking performed.

<option name="log_channel" value="stderr"/>
<option name="log_file" value="./gopdc.log"/>
Defines the logging channel. Valid options for log_channel are:
	file 	- Log to a file defined by "log_file"
	syslog 	- Log everything to systems logging facility
	stderr	- Log all to stderror, this one would log to samba log files
	both	- For file and syslog
Please note that the optional parameter "-debug" will override this setting

The following options are normally left unchanged	
<option name="prog_path" value="./scripts/"/>
Defines the program path where GOpdc is installed. This Path is automatically set
by the install.sh script, so normally theres no need to change this parameter.

<option name="errorreporting" value="0"/>
Defines the PHP error_reporting. Since we try to operate in a clean way, this should
only be not "0" if there are problems.

Recursos:

Sistemes

Gosa permet gestionar els sistemes d'una organització. Gosa suporta (--acacha 09:50, 26 març 2011 (UTC)) els següents tipus de dispositius/sistemes:

GosaSistemes.png

Als següents apartats veurem com podem utilitzar els diferents tipus de sistemes.

Estacions de treball

Permeten indicar màquines que rebran serveis com els de DNS o DHCP. Bàsicament podem indicar la IP i la MAC, però també altres opcions com FAI.

IMPORTANT: Cal definir prèviament el servidor de NTP, ja que a les estacions de treball es obligatori definir-lis el seu servidor d'hora si les volem poder crear

TODO

GosaestacioTreballExempleDHCP.png
GosaestacioTreballExempleDHCPiDNS.png

Notes:

  • També és obligatori posar automàtic a VSyn i Hsync
  • L'error de infraestructura Gosa, no importa tot funciona correctament

Màquines Windows

NOTA: Si tenim Gosa configurat amb Samba i Ldap les màquines Windows s'afegiran automàticament segons la configuració de smbldap-tools. El que no s'afegeix són les adreces Ip i les MAC

TODO

Servidors

Els servidors són un tipus especial de dispositius a Gosa que respecte a altres dispositius a part de poder gestionar la informació bàsica tipus nom del servidor, adreça IP, MAC, etc, tindran una pestanya especial anomenada "Services/Servicios" on podrem gestionar els següents serveis (la quantitat de serveis que tingueu instal·lats depèn dels plugins de Gosa instal·lats):

GosaServices.png

DHCP

Per configurar el servei de DHCP a gosa cal seguir tres passos:

  • Instal·lar el plugin
  • Configurar el servei de DHCP a gosa. El servei es configura utilitzant un sistema de tipus servidor
  • Cal configurar el servidor per tal d'utilitzar DHCP amb Ldap

Vegeu també:

Instal·lació del plugin DHCP

IMPORTANT: Si seguiu els passos de Gosa#Instal.C2.B7laci.C3.B3_de_gosa_2.7_pas_a_pas_a_Ubuntu_10.10 aquesta instal·lació ja incorpora el plugin de DHCP per a Gosa

Al donar d'alta un sistema de tipus servidor, se li poden assignar serveis a la pestanya Serveis. Si heu instal·lat el plugin/paquet debian:

gosa-plugin-dhcp

Un dels serveis disponibles és DHCP. També és important el paquet gosa-plugin-dhcp-schema:

$ dpkg -L gosa-plugin-dhcp-schema | more
...
/etc/ldap/schema/gosa/dhcp.schema

Ja que conté el esquema Ldap de gosa que permet emmagatzemar les dades DHCP. Així el primer pas a dur a terme és instal·lar aquest schema al servidor Ldap

Els passos a seguir per instal·lar l'schema són:

Primer cal convertir l'schema. Es pot fer utilitzant l'ordre slaptest. Primer creeu un fitxer:

$ cd
$ joe schema_convert.conf
include /etc/ldap/schema/gosa/dhcp.schema

I ara creeu una carpeta per guardar el resultat de la conversió:

$ mkdir ldif_result

Ara executeu la conversió amb:

$ slaptest -f schema_convert.conf -F ldif_result 

Ara cal copiar el fitxer d'schema amb el nou format a la carpeta de configuració de Ldap:

$ sudo cp ldif_result/cn\=config/cn\=schema/cn\=\{0\}dhcp.ldif /etc/ldap/slapd.d/cn\=config/cn\=schema
$ sudo su -
# cd /etc/ldap/slapd.d/cn\=config/cn\=schema

Ara cal que li canvieu el número (poseu el primer número que tingueu lliure) i arregleu els permisos:

# mv cn\=\{0\}dhcp.ldif cn\=\{17\}dhcp.ldif 
# chown openldap:openldap *

Ara apliqueu els canvis reiniciant el servidor Ldap:

# exit
$ sudo /etc/init.d/slapd restart

NOTA: Amb el format antic de Ldap només calia afegir la línia: include /etc/ldap/schema/gosa/dhcp.schema al fitxer de configuració de Ldap

Consulteu també DHCP.

Configuració del servei DHCP a Gosa

El primer pas és crear un servidor, a l'apartat:

Sistemes --> Boto Acciones --> Crear --> Servidor

Un exemple:

GosaServer.png

Un cop creat el servidor cal crear a la pestanya Servicios el servei de DHCP.

Aquí cal reproduir la configuració del servidor DHCP.

TODO

Configurar el servidor DHCP per tal d'utilitzar Ldap/Gosa

NOTA: Consulteu com es pot muntar un servidor DHCP per tal d'agafar les dades d'un servidor Ldap a la secció DHCP_i_Ldap de l'article sobre DHCP

Consulteu:

Bind (DNS)

Per configurar el servei de DNS amb Bind a Gosa cal seguir tres passos:

  • Instal·lar el plugin de DNS
  • Configurar el servei de DNS a gosa. El servei es configura utilitzant un sistema de tipus servidor
  • Cal configurar el servidor per tal d'utilitzar DNS amb Ldap

Al donar d'alta un sistema de tipus servidor, se li poden assignar serveis a la pestanya Serveis

Vegeu també:

Instal·lació del plugin DNS

IMPORTANT: Si seguiu els passos de Gosa#Instal.C2.B7laci.C3.B3_de_gosa_2.7_pas_a_pas_a_Ubuntu_10.10 aquesta instal·lació ja incorpora el plugin de DNS per a Gosa

Si heu instal·lat el plugin/paquet debian:

gosa-plugin-dns

Un dels serveis disponibles és DNS. També és important el paquet gosa-plugin-dns-schema:

$ dpkg -L gosa-plugin-dns-schema | more
...
/etc/ldap/schema/gosa/dnszone.schema

NOTA: L'esquema dnszone.schema depèn de l'esquema cosine.schema que alhora depèn de core.schema

Ja que conté el esquema Ldap de gosa que permet emmagatzemar les dades DNS. Així el primer pas a dur a terme és instal·lar aquest esquema al servidor Ldap

Els passos a seguir per instal·lar l'schema són:

Primer cal convertir l'schema. Es pot fer utilitzant l'ordre slaptest. Primer creeu un fitxer:

$ cd
$ joe schema_convert.conf
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/gosa/dnszone.schema

I ara creeu una carpeta per guardar el resultat de la conversió:

$ mkdir ldif_result

Ara executeu la conversió amb:

$ slaptest -f schema_convert.conf -F ldif_result 
config file testing succeeded

Ara cal copiar el fitxer d'schema amb el nou format a la carpeta de configuració de Ldap:

$ sudo cp ldif_result/cn\=config/cn\=schema/cn\=\{2\}dnszone.ldif /etc/ldap/slapd.d/cn\=config/cn\=schema
$ sudo su -
# cd /etc/ldap/slapd.d/cn\=config/cn\=schema

Ara cal que li canvieu el número (poseu el primer número que tingueu lliure) i arregleu els permisos:

# mv cn\=\{2\}dnszone.ldif cn\=\{18\}dnszone.ldif
# chown openldap:openldap *

Ara apliqueu els canvis reiniciant el servidor Ldap:

# exit
$ sudo /etc/init.d/slapd restart

NOTA: Amb el format antic de Ldap només calia afegir la línia: include /etc/ldap/schema/gosa/dhcp.schema al fitxer de configuració de Ldap

Consulteu també DNS.

Configuració del servei DNS a Gosa

NOTA: Consulteu com es pot muntar un servidor DNS per tal d'agafar les dades d'un servidor Ldap a la secció DNS_i_Ldap de l'article sobre DNS

TODO:

  • Cal crear un servidor
  • Explicar com es crea el servei de DNS
  • Explicar com es configuren les estacions de treball i altres dispositius per utilitzar DNS

Configuració del servidor DNS per tal d'utilitzar Gosa/Ldap

NOTA: Consulteu com es pot muntar un servidor DNS per tal d'agafar les dades d'un servidor Ldap a la secció DNS_i_Ldap de l'article sobre DNS

Nagios

$ dpkg -L gosa-plugin-nagios | more

Fitxer README:

/usr/share/doc/gosa-plugin-nagios/README.nagios

Per utilitzar el plugin de Nagios

1) Afegir l'esquema nagios.schema al servidor Ldap (cal passar-lo a ldif)

/etc/ldap/schema/gosa/nagios.schema


2) Check that the nagiosAccount plugin is in your gosa.conf and that the tab is active 

<!--                     <plugin acl="default" class="nagiosAccount" icon="monitoring.png"
                                 path="plugins/personal/nagios" /> --> 
 
 <!--    <nagios>
                 <tab class="nagiosAccount" />
         </nagios> -->
3) copy gosa_bind.conf (/usr/share/doc/gosa-plugin-nagios/contrib/gosa_bind.conf) and nagios_ldap.conf (/usr/share/doc/gosa-plugin-nagios/contrib/nagios_ldap.conf) to /etc/gosa
 
4) configure gosa_bind.conf to connect to your ldap tree

5) Configure nagios_ldap.conf  for how to write the configuration file

Benoit Mortier
Guillaume Delecourt
OpenSides 2005-2009

Títol de l'enllaç

Impressores

S'identifiquen per estar dins un ou especial (ou=printers,ou=systems) dins de cada "Carpeta":

cn=provaaEsborrar,ou=printers,ou=systems,ou=ManInfo,ou=Impressores,ou=Sistemes,ou=All,dc=iesebre,dc=com

El objectClass és gotoPrinter:

Un exemple de com queda la impressora:

dn: cn=provaaEsborrar,ou=printers,ou=systems,ou=ManInfo,ou=Impressores,ou=Sistemes,ou=All,dc=iesebre,dc=com
objectClass: gotoPrinter
objectClass: top
cn: provaaEsborrar
description: Impresora de prova
gotoGroupAdminPrinter: maninfo
gotoGroupPrinter: caps_departament
ipHostNumber: 192.168.0.151
l: Aula X
labeledURI: http://URLDEPROVA
macAddress: 78:e7:d1:d2:2b:47

On l és la location (lloc on està la impressora).

Fer una replica de gosa

En certs casos pot ser interessant replicar un gosa d'un servidor amb Ldap i Gosa a un altre màquina. El primer que heu de fer és replicar el Ldap:

Ldap#M.C3.A8tode_2_slapcat_.7C_slapadd

Ara repliquem la instal·lació:

Al servidor original mirem que hi ha instal·lat de Gosa:

# dpkg -l | grep gosa

I ho instal·lem a la replica:

$ sudo apt-get install gosaxxxx

NOTA: Cal tenir els mateixos repositoris a la replica i al servidor original, per exemple:

$ cat /etc/apt/sources.list
...
# deb http://oss.gonicus.de/pub/gosa/debian-etch/ ./

Si teniu codi modificat aleshores potser us interessa obtenir una copia.

$ sudo scp -rp root@192.168.0.8:/usr/share/gosa /usr/share

NOTA: A aquest exemple el servidor Ldap original té la IP 192.168.0.8

Per replicar la configuració:

$ sudo scp -rp root@192.168.0.8:/etc/gosa /etc

Ara aplique els canvis:

$ sudo update-gosa

I torneu a iniciar Apache

$ sudo /etc/init.d/apache2 restart

Gosa Ldap Manager

Gosa incorpora (cal instal·lar el plugin) un gestor de la base de dades Ldap. Aquest apartat permet exportar e importar informació de l'arbre Ldap.

Gosa13.png

NOTA: Jo recomano altres eines com Apache Directory Studio un plugin d'Eclipse o en menor mesura phpldapadmin un aplicació web similar a phpmyadmin però per a Ldap en comptes de MySQL

Desenvolupament a mida de Gosa

Consulteu Desenvolupament a mida de Gosa

Autoload

Consulteu Desenvolupament_a_mida_de_Gosa#Autoload.

locales

/usr/bin/update-locale

El paquet gosa-dev proporciona un script de bash anomenat /usr/bin/update-locale que s'utilitza per tal d'actualitzar els locales. Jo l'executat de la següent forma:

$ sudo bash -c  "/usr/bin/update-locale > result"

I al final diu:

---------------------------------------------------------------------

Now edit all files that have been replaced above (i.e. using kbabel
or gtranslator) and mail the changes to gosa@oss.gonicus.de to be 
included in the next release.

To see the changes you've made in GOsa, run "msgfmt messages.po" on
your freshly edited files and restart your apache after that. Set
the webbrowser to the language you've edited and go back to the
login screen. 

---------------------------------------------------------------------

Paquet gosa-dev

$ dpkg -S /usr/bin/update-locale
gosa-dev: /usr/bin/update-locale

Jo he tingut problemes amb fitxers que tenien caràcters no ASCII ja que sembla que per defecte l'script està pensat per treballar amb ASCII. El que he fet a estat canviar la línia 39 per indicar que treballo amb utf-8:

Abans:

  find . -name '*.[ctpix][mophn][nlpc]' | xgettext -f - --keyword=must -d Domain -L PHP -n -o locale/${l_path}messages.po

Ara:

  find . -name '*.[ctpix][mophn][nlpc]' | xgettext --from-code=utf-8 -f - --keyword=must -d Domain -L PHP -n -o locale/${l_path}messages.po


Samba

Gosa pot configurar comptes Samba. Cal però tenir prèviament instal·lat Samba. Consulteu Samba, sobretot Samba com a PDC.

També podeu consultar els articles de Routers Linux. per exemple, Router infocentre per veure la documentació de com muntar un servidor des de zero amb aquests serveis i altres.

Afegir al domini

smbldap-tools

Combinacions, proves realitzades:

  • Reafegir al domini una màquina que ja havia estat afegida (afegida amb mètode on the fly, utilitzant smbldap-tools, script add machine script). Després del primer cop que es va afegir s'ha configurat la IP i la MAC i s'ha activat DNS i DHCP--> Ok
  • Canviar de nom la màquina anterior i tornar a afegir amb el mateix nom (A gosa no deixa canviar el nom de màquines Windows (almenys a gosa 2.6.x)). Canviar per ADS els camps uid i cn.

GoPDC

És una alternativa a smbldap-tools. Però no la recomanda. Vegeu GoPDC.

Configuració del fitxers gosa.conf

Hi ha uns quants paràmetres relacionats amb Samba:

  • sambaMachineAccountRDN: string. Defineix un RDN a on Gosa buscarà les estacions de treball Samba. El valor per defecte és TODO. Similar al valor per defecte ou=people que s'utilitza però per a les persones.
      The lock will be removed after the procedure completes.  pool will use the sambaUnixIdPool objectclass settings inside your LDAP. This one is unsafe, because it does not check  for  concurrent
  • sambaSID: Indica el SID del domini Samba. Només s'utilitza si no està disponible al arbre Ldap. Es pot obtenir el SID de domini actual amb: net getlocalsid.
  • sambaRidBase: De tipus integer. Indica el sambaRidBase per a calcular els nous SID. Només s'utilitza el que posa al fitxer gosa.conf si no es troba aquesta informació dins de l'arbre Ldap.
  • sambaHashHook: de tipus 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]), $/;"
  • sambaIdmapping: statement tells GOsa to maintain sambaIdmapEntry objects. Depending on your setup this can drastically improve the windows login performance.

TODO:

The  idAllocationMethod statement defines how GOsa generates numeric user and group id values. If it is set to traditional GOsa will do create a lock and perform a 
search for the next free ID.
The lock will be removed after the procedure completes.  pool will use the sambaUnixIdPool objectclass settings inside your LDAP. This one is unsafe, because it does not  
check  for concurrent LDAP access and already used IDs in this range.  On the other hand it is much faster.

Vegeu també:

Importació massiva de fotos

Consulteu PHP_i_Ldap#Pujar_fotos_d.27un_directori_i_subdirectoris_a_Ldap.2FGosa


Smarty

Gosa configura l'smarty al fitxer:

$ cat /usr/share/gosa/include/php_setup.inc
...
/* Do smarty setup */
if (file_exists("/usr/share/php/smarty3/Smarty.class.php")){
	require("/usr/share/php/smarty3/Smarty.class.php");
} else {
	require("/usr/share/php/smarty3/libs/Smarty.class.php");
}
$smarty = new Smarty;
$smarty->template_dir = $BASE_DIR.'/ihtml/';
$smarty->caching= false;

// To be able to switch between smarty version 2/3                                                                      
if(defined('SMARTY_PHP_REMOVE')){                                                                                       
    $smarty->php_handling= SMARTY_PHP_REMOVE;                                                                           
}else{                                                                                                                  
    $smarty->php_handling= Smarty::PHP_REMOVE;                                                                          
}    

Com podeu veure la cache està desactivada i el compile_dir no s'indica aquí. En resum les carpetes són:

$smarty->template_dir --> /usr/share/gosa/ihtml
$smarty->compile_dir --> Per defecte /var/spool/gosa. Es pot canviar a gosa.conf utilitzant l'opció: templateCompileDirectory
$smarty->cache_dir --> La cache està desactivada.
$smarty->config_dir --> No s'utilitza. 

Podeu trobar les dades que us comento amb:

/var/spool/gosa/
$ grep -n "template_dir" -r .
./include/php_setup.inc:297:$smarty->template_dir = $BASE_DIR.'/ihtml/';
$ grep -n "compile_dir" -r .
./include/functions.inc:2172:function clean_smarty_compile_dir($directory)
./include/functions.inc:2201:        clean_smarty_compile_dir($directory);
./html/helpviewer.php:63:$smarty->compile_dir= $config->get_cfg_value("core","templateCompileDirectory");
./html/index.php:174:$smarty->compile_dir= $config->get_cfg_value("core","templateCompileDirectory");
./html/index.php:178:if (!(is_dir($smarty->compile_dir) && is_writable($smarty->compile_dir))) {
./html/index.php:180:        $smarty->compile_dir),FATAL_ERROR_DIALOG);
./html/index.php:185:clean_smarty_compile_dir($smarty->compile_dir);
./html/password.php:108:$smarty->compile_dir= $config->get_cfg_value("core", "templateCompileDirectory");
./html/password.php:111:if (!(is_dir($smarty->compile_dir) && is_writable($smarty->compile_dir))) {
./html/password.php:116:            bold($smarty->compile_dir)
./html/password.php:124:clean_smarty_compile_dir($smarty->compile_dir);
./html/setup.php:63:$smarty->compile_dir= "/var/spool/gosa/";
./html/setup.php:64:if (!(is_dir($smarty->compile_dir) && is_writable($smarty->compile_dir))){
./html/setup.php:67:        $smarty->compile_dir= preg_replace("#/html/.*$#","",$_SERVER['SCRIPT_FILENAME']);
./html/setup.php:72:if (!(is_dir($smarty->compile_dir) && is_writable($smarty->compile_dir))){
./html/logout.php:72:	$smarty->compile_dir= $config->get_cfg_value("core","templateCompileDirectory");
./html/logout.php:74:	$smarty->compile_dir= '/var/spool/gosa/';
./html/logout.php:77:if(!is_writeable($smarty->compile_dir)){
./html/main.php:113:$smarty->compile_dir= $config->get_cfg_value("core","templateCompileDirectory");

Temes

Com crear un tema nou

1. Copy the folder html/themes/default to the required theme-name.

# cd /usr/share/gosa
# cp -a html/themes/default html/themes/mytheme

2. Create a theme folder under ithtml/themes

# mkdir ihtml/themes/mytheme

3. Update your gosa.conf to use the new theme.

<location
  theme="mytheme"

4. Call update-gosa

5. Copy the files you want to adapt.

# cd /usr/share/gosa/ihtml/themes/mytheme
# mkdir -p plugins/admin/users/
# cp plugins/admin/users/user-* ihtml/themes/mytheme/plugins/admin/users/

5. Modify the files and then "relogin" to GOsa.

https://oss.gonicus.de/labs/gosa/ticket/1167

Modificar les vistes per permetre modificar camps readonly

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" ></script>

<script type="text/javascript">

$(document).ready(function(){
 $("#uid").removeAttr("disabled", "disabled");
});

</script>

Resolució de problemes

¡No se puede encontrar SID de grupo en el archivo de configuración!

Primer cal buscar l'error en anglès:

$ cd /usr/share/gosa
$ grep -A 2 -B 2 -n "No se puede encontrar SID" -r .
./locale/core/es/LC_MESSAGES/messages.po-5771-#: plugins/admin/groups/class_group.inc:1259
./locale/core/es/LC_MESSAGES/messages.po-5772-msgid "Cannot find group SID in your configuration!"
./locale/core/es/LC_MESSAGES/messages.po:5773:msgstr "¡No se puede encontrar SID de grupo en el archivo de configuración!"

Què és:

Cannot find group SID in your configuration

L'error el dona a:

$ cd plugins/
$ grep -A 2 -B 2 -n "Cannot find group SID in your configuration" -r .
./admin/groups/class_group.inc-164-                    $this->SID= $this->config->get_cfg_value("core","sambaSID");
./admin/groups/class_group.inc-165-                } else {
./admin/groups/class_group.inc:166:                    msg_dialog::display(_("Configuration error"), _("Cannot find group SID in your configuration!"), ERROR_DIALOG);
./admin/groups/class_group.inc-167-                }
./admin/groups/class_group.inc-168-            }
--
./admin/groups/class_group.inc-1257-                    $this->SID= $this->config->get_cfg_value("core","sambaSID");
./admin/groups/class_group.inc-1258-                } else {
./admin/groups/class_group.inc:1259:                    msg_dialog::display(_("Configuration error"), _("Cannot find group SID in your configuration!"), ERROR_DIALOG);
./admin/groups/class_group.inc-1260-                }
./admin/groups/class_group.inc-1261-            }


El plugin DHCP no deixa afegir noves subxarxes (no apareix el botó)

Hi ha un error al fitxer:

/usr/share/gosa/plugins/admin/systems/services/dhcp/class_servDHCP.inc

On posa:

images/lists/element.png[new]

ha de posar:

images/lists/element.png

NOTA: Cal sortir de Gosa i tornar a entrar...

No troba la font ttf-liberation

$ sudo cat /var/log/syslog | grep GOsa
[Wed Jul 25 10:34:57 2012] [error] [client 109.69.15.146] Symbolic link not allowed or link target not accessible: /usr/share/gosa/html/themes/default/fonts/LiberationSans-Regular.ttf, referer: http://109.69.15.120/gosa/themes/default/style.css

Cal fer el següent:

$ cd /usr/share/fonts/truetype
$ sudo ln -s liberation ttf-liberation

uncaught exception 'Exception' with message unknown method registerPlugin

Sembla ser que aquest error succeix amb la versió 11.04 d'Ubuntu, el paquet smarty no és la versió definitiva de smarty 3.0. Es pot solucionar instal·lant el paquet smarty dels repositoris de gosa.

No es poden editar els sistemes de tipus network device

Dona el següent error:

Cannot instantiate tabbed-plug-in, the base plugin () is not available! 

Me l'he trobat a Gosas acabats d'instal·lar (install-gosa) i al de l'institut de l'Ebre.

Errors d'esquemes OXUserObject, scalixUserClass, apple-user al entrar al sistema

Això passa si instal·leu tots els plugins, us donarà un error avis al entrar a gosa 2.7 (de fet no us mostra els plugins relatius als esquemes que falten)

Els squemes són:

  • OXUserObject
  • scalixUserClass
  • apple-user

NOTA: La sol·lució a aquest problema és esborrar les referències a aquests plugins al fitxer /etc/gosa/gosa.conf

Hi ha que esborrar tots els: netatalk, scalixAccount, webdavAccount i oxchangeAccount (Surten cuatre vegades els dos primers i tres vegades els ultims)
Després reiniciar el apache y executar el update-gosa

NOTA: Els squemes no estan al paquet gosa-schema. És possible que no estiguin per què no són de lliure distribució?

Al actualitzar Smarty dona error en las plantilles

Ni siquiera muestra correctamente el asistente inicial del GOsa

Solución: Smarty#Al_actualizar_Smarty_da_error_en_las_plantillas

NFS no soporta mas de 16 grupos. Avís al modificar un usuari que estigui a molts grups

Consulteu NFS#L.C3.ADmits_en_la_quantitat_de_groups_:_NFS_no_soporta_mas_de_16_grupos._Av.C3.ADs_al_modificar_un_usuari_que_estigui_a_molts_grups.3D

No se puede convertir un grupo primario a grupo samba: ¡El grupo no puede ser identificado!

Per buscar la línia de codi amb el problema, primer cal saber quin és el text del missatge en anglès:

$ grep -A 3 -B 3 -n "No se puede convertir un grupo primario a grupo samba" -r .

En aquest cas era:

Cannot convert primary group to samba group: group cannot be identified

I ara feu:

$ grep -A 3 -B 3 -n "Cannot convert primary group to samba group: group cannot be identified" -r .
./plugins/personal/samba/class_sambaAccount.inc:1074:                        _("Cannot convert primary group to samba group: group cannot be identified!"), 

El tros de codi problemàtic és::

$ldap->search("(&(objectClass=posixGroup)(gidNumber=".$this->gidNumber."))", array("cn"));
            if ($ldap->count() != 1){
                msg_dialog::display(_("Warning"), 
                        _("Cannot convert primary group to samba group: group cannot be identified!"),
                        WARNING_DIALOG);
            }

Un altre cop estem utilitzant una plantilla a la que em indicat un gidnumber que no existeix.

IMPORTANT: Normalment si és un usuari que es genera a partir d'una plantilla, el valor que es posa a la plantailla en el cas d'utilitzar usuaris de domini és el gidNumber 513 que correspon al grup per defecte de Samba/Windows per als usuaris de Domini

Se ha detectado un SID Samba sin definir. ¡Por favor solucione este problema manualmente! Undefined Samba SID detected. Please fix this problem manually!

El problema té el seu origen en una plantilla (en aquest cas una plantilal de profe de highschoolusers) que no tenia definit el camp sambaDomainName.

Aquest missatge el llança Gosa al fitxer a la línia aprox 1050:

/usr/share/gosa/plugins/personal/samba/class_sambaAccount.inc

Per depurar he inserit les següents línies:

        // Generate rid / primaryGroupId
        print_a($this->config);
        echo "SambaDomainName: ". $this->sambaDomainName . "<br/>";
        echo "SID:".$this->config->data['SERVERS']['SAMBA'][$this->sambaDomainName]['SID'] ."<br/>";
        echo "RIDBASE:". $this->config->data['SERVERS']['SAMBA'][$this->sambaDomainName]['RIDBASE']."<br/>";

        echo "SID: " .$this->config->data['SERVERS']['SAMBA']['INSMONTSIA']['SID']."<br/>";
        echo "RIDBASE: " . $this->config->data['SERVERS']['SAMBA']['INSMONTSIA']['RIDBASE']."<br/>";

Veureu al al imprimir tota la configuració:

print_a($this->config);

L'objecte SAMBA amb el SID i el RIDBASE existeix però el problema és que tenim el SambaDomainName buit! Això és per que la plantilla utilitzada no tenia aquest camp. Normalment aquest camp s'escolleix a la pestanya Samba i sempre està ple al ser un desplegable però al partir d'una plantilla feta a mà ens la vam deixar i d'aquí l'error.

Una plantilla d'usuari assigna tota la estona el mateix gidnumber als usuaris

  • Sembla ser que la plantilla ha d'utilitzar un gidnumber que no estigui utilitzant cap alumne, o millor dit que si es fa una cerca a tot l'arbre ldap pel gidnumber assignat a la plantilla no es trobi cap objecte posixGroup.

Notes

  • Si es visualitza la pestanya Posix abans de guardar veureu que l'usuari que heu creat a partir de la plantilla té el gidnumber de la plantilla
  • Es pot tenir la "tentació" de modificar la plantilla d'usuari pel darrera i treure el gidnumber. No ho podreu fer ja que el gidnumber és un camp obligatori de l'objecte posixAccount.

Una de les possibles solucions es tenir una bona planificació del ús dels identificadors d'usuari i paraules de pas:

Al moure usuaris Unix (posixAccount) no es mouen els grups dels usuaris

Al moure un usuari ja creat d'una OU a un altre el grup de l'usuari es queda a la OU original. Personalment trobo que es un problema de Gosa i estaria bé (TODO --acacha 17:25, 9 set 2011 (UTC)) solucionar-ho per codi.

El que em fet a l'Institut de l'Ebre es crear un script per ordenar aquest grups que quedan perduts. Podeu trobar la última versió a:

http://www.iesebre.com/subversion/projectes/consultesLDAP/tidyGroups.php
<?php
#IMPORTANT: no poseu les paraules de pas a aquest fitxer:
include "/etc/paraulesdepas.php";


$ldapconfig['host'] = '192.168.0.8';
#Només cal indicar el port si es diferent del port per defecte
$ldapconfig['port'] = NULL;
$ldapconfig['basedn'] = 'dc=iesebre,dc=com';

$ds=ldap_connect($ldapconfig['host'], $ldapconfig['port']);

ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

$password=$PASSWD;
$dn="cn=admin,dc=iesebre,dc=com";

$basedn="ou=All,dc=iesebre,dc=com";
$basedn1="dc=iesebre,dc=com";

if ($bind=ldap_bind($ds, $dn, $password)) {
  echo("Login correct\n");
} else {
  # Error
}

//Search al Unix Accounts
$filter="(ObjectClass=posixaccount)";
$sr=ldap_search($ds,$basedn, $filter);   

$totalUsers=ldap_count_entries($ds,$sr); 

echo "Total Users:".$totalUsers."\n";

$info = ldap_get_entries($ds, $sr); 
echo "Data for ".$info["count"]." items returned:<p>"; 

$dns= array();
$gidnumbers= array();

for ($i=0; $i<$info["count"]; $i++  ) { 
	/*echo "dn is: ". $info[$i]["dn"] ."\n"; 
	echo "gidnumber: ". $info[$i]["gidnumber"][0] ."\n"; 
    echo "i:"+$i."\n";
    */
    $dns[]=$info[$i]["dn"];
    $gidnumbers[]=$info[$i]["gidnumber"][0];
} 

$counter=0;
foreach ($gidnumbers as $gidnumber) {
	echo "***********************************************\n";
	echo "Searching gidnumber $gidnumber...";
    echo " dn: ". $dns[$counter] . " ";
    
	if ($gidnumber<1000){
		echo "Skipping special accounts (sambaMachineAccounts, privileges users...)\n";
		$counter++;
		continue;
	}
    
    $filter1="(&(objectclass=posixgroup)(gidnumber=".$gidnumber."))";
    //echo "filter1: $filter1\n";
	$sr=ldap_search($ds,$basedn1, $filter1);   
	
	$found=ldap_count_entries($ds,$sr); 
	
	$info = ldap_get_entries($ds, $sr);
    
	switch ($found) {
		case 0:
			echo "GIDNUMBER NOT FOUND! \n";
			break;
		case 1:
			echo "GIDNUMBER FOUND! \n";
			
			//Comparar els DN sense ou=people ni ou=group
			echo "Group dn : ". $info[0]["dn"] ."\n"; 
			echo "User dn : ". $dns[$counter] ."\n"; 

			if (substr_count($info[0]["dn"], 'ou=group')!=1) {
				echo "ALERT: Group outside ou=group -> " . $info[0]["dn"] . " ";
				continue;
			}
			
			if (substr_count($dns[$counter], 'ou=people')!=1) {
				echo "ALERT: User outside ou=people -> $dns[$counter] ";
				continue;
			}

			
			$arraygroubBaseDN=explode(",ou=groups,",$info[0]["dn"]);
			$arrayuserBaseDN=explode(",ou=people,",$dns[$counter]);
			
			$groubBaseDN=$arraygroubBaseDN[1];
			$userBaseDN=$arrayuserBaseDN[1];
			
			echo "Group dn base: ". $groubBaseDN . "\n"; 
			echo "User dn base: ". $userBaseDN . "\n";
			
			if ($groubBaseDN===$userBaseDN) {
				echo "GIDNUMBER OK! \n";
			} else {
				echo "GIDNUMBER NOT OK! \n";
				//Move group object to correct folder
				//Does ou=groups exists in correct folder?
				
				//echo "----------------\n";
				//echo "Search base: ". $userBaseDN . "\n"; 
				$sr1=ldap_list($ds,$userBaseDN, "ou=groups"); 
				$found1=ldap_count_entries($ds,$sr1); 
				echo "trobats: $found1\n";
				if ( $found1 != 1 ) {
					echo "ou=groups,$userBaseDN not found...";
					//Create ou=groups
					$data['ou'] = "groups";
					$data['objectClass'][0] = "top";
					$data['objectClass'][1] = "organizationalUnit";
					
					echo "prova: ou=groups,".$userBaseDN ."\n";
					$addresult = ldap_add($ds, "ou=groups,".$userBaseDN, $data);
					
					/*
					$info['ou'] = "groups";
					$info['objectClass'][0] = "top";
					$info['objectClass'][1] = "organizationalUnit";
					//							ou=groups,ou=Grup A,ou=Curs 1,ou=Sistemes microinformà tics i xarxes,ou=Informà tica,ou=Alumnes,ou=All,dc=iesebre,dc=com
					//$addresult = ldap_add($ds, "ou=groups,ou=Grup A,ou=Curs 1,ou=Sistemes microinformà tics i xarxes,ou=Informà tica,ou=Alumnes,ou=All,dc=iesebre,dc=com", $info);
					*/
					if ($addresult) {
						echo "ou=groups added correctly\n";
					} else {
						echo "error adding ou=groups: ".ldap_error($ds)."\n";
						
					}
					
				}	else {
					//Move object
					echo "newrdn: ". $groubBaseDN=$arraygroubBaseDN[0] . "\n";
					echo "source: ". $info[0]["dn"] . "\n";
					echo "basedestination: ". "ou=groups,".$userBaseDN . "\n";
					echo "rdndestination: ". $groubBaseDN=$arraygroubBaseDN[0] . "\n";
					$result= ldap_rename ( $ds , $info[0]["dn"] , $groubBaseDN=$arraygroubBaseDN[0] , "ou=groups,".$userBaseDN , TRUE );
					if ($result) {
						echo "GROUP MOVED OK\n";
					} else {
						echo "ERROR MOVING OBJECT:".ldap_error($ds)."\n";
						
					}
				}
			}
			echo "**********************************************\n\n";
			break;
		default:
			echo "MULTIPLE RESULTS FOUND! \n";
			break;
	}
    
    $counter++;
}





echo "Closing connection"; 
ldap_close($ds); 

?>

Error interno. User ID is not unique! al fer login

El plugin highschoolusers permet tenir uid duplicats esmpre i quan els uids no estiguin dins de All tots dos (la resta de carpetes poden contenir proves, baixes, dades històriques d'altres anys). L'únic problema és que els usuaris amb dades històriques i també amb usuari actual aleshores tenen aquest error al intentar entrar a Gosa. La sol·lució en forma de modificació pegat del codi la podeu trobar a:

#Canviar el baseDN a partir del qual es busquen usuaris vàlids per entrar a Gosa

Canviar el baseDN a partir del qual es busquen usuaris vàlids per entrar a Gosa

El pegat (patch) és el següent, cal modificar el fitxer:

/usr/share/gosa/include/functions.inc

A la línia 605 de la funció ldap_login_user, he canviat el codi:

  $ldap->cd($config->current['BASE']);
  $allowed_attributes = array("uid","mail");
  $verify_attr = array();

Per:

// $ldap->cd($config->current['BASE']);

 $ldap->cd("ou=All,".$config->current['BASE']);
 $allowed_attributes = array("uid","mail");
 $verify_attr = array();

Així només els usuaris de All poden accedir a Gosa.

TODO: Parametritzar All.

NOTA: Aquesta modificació per exemple l'utilitzem a l'institut de l'Ebre per tal de poder tenir usuaris amb el uid duplicat (el plugin highschoolusers ens ho permet). Tenim usuaris duplicats de uid per que tenim les dades històriques i també guardem les baixes. Només el que està dins de All o subcarpetes és vàlid actualment

La versió 2.7 no fa cas del paràmetre sambaMachineAccountRDN

Al fitxer gosa.conf cal tenir l'opció:

sambaMachineAccountRDN="ou=Computers"

A la secció

<main .... sambaMachineAccountRDN="ou=Computers" ... />

I cal:

$ sudo apt-get update-gosa

M'he trobat que ignora aquest valor a la versió 2.7.1 (possiblement també a la 2.7). De fet si es consulta el plugin preferences de Gosa el marca com una preferència no establerta i s'utilitza el valor per defecte:

ou:winstations,ou=systems,

Si s'estableix el valor a Ldap properties (plugin preferences) aleshores si que funciona. Per poder veure el valor cal desplegar el filtre i posar:

All Properties

IMPORTANT: Per poder establir Ldap propierties (al salvar prement apply) abans a calgut solucionar els dos alerts que apareixen amb:

$ sudo mkdir /etc/gosa/vacation
$ sudo chown www-data:www-data /etc/gosa/vacation
$ sudo chmod 755 /etc/gosa/vacation
$ sudo chown www-data:www-data /var/spool/kiosk
$ sudo chmod 755 /var/spool/kiosk

Els usuaris generats amb Gosa entre al domini de Windows/Samba sense password

Descripció del problema:

  • Els usuaris no entren a les estacions de treball amb el seu usuari i password normals. El pitjor de tot és que si que entren sense posar paraula de pas (paraula de pas en blanc)
  • Passa tant en el login de les estacions de treball, com al afegir una màquina al domini (posant per exemple la paraula de pas de Julio) o també amb un smbclient
  • El problema es soluciona un cop l'usuari a entrat al menys un cop amb usuari Linux directament:
$ su usuari

El pròxim logon de Windows ja funciona correctament amb la paraula de pas que li pertoca i ja no entra més sense paraula de pas.

  • Problema de PAM???
  • A gosa s'entra correctament amb l'usuari i paraula de pas que toca

Entorn:

  • Logon Server: un Samba com a BDC amb el passwd backend un Ldap en local, replica synrepl (nota: a l'infocentre de Santa Barbara també em va passar amb un PDC amb Ldap master)
  • Usuaris donats d'alta amb Gosa 2.7

Fitxers de configuració:

Solució

  • Al actualitzar gosa de la versió 2.7 a 2.7.1 s'ha tornat a arreglar però no és un bug del gosa era un problema de fitxer de configuració gosa.conf ja que al actualitzar et força a tornar a crear el fitxer gosa.conf. Amb els valors per defecte:
  <main default="default"
       warnSSL="true"
       forceSSL="false"
       forceGlobals="true"
       ignoreLdapProperties="false"
       rfc2307bis="false"
   >

Funciona. Abans hi havia:

  <main default="default"
       warnSSL="true"
       forceSSL="true"
       forceGlobals="true"
       ignoreLdapProperties="false"
       logging="true"
       listSummary="true"
       displayErrors="false"
       schemaCheck="true"
       copyPaste="true"
       ldapStats="false"
       storeFilterSettings="true"
       sendCompressedOutput="true"
       modificationDetectionAttribute="entryCSN"
       language="es_ES"
       theme="default"
       sessionLifetime="7200"
       templateCompileDirectory="/var/spool/gosa"
       debugLevel="0"
       sambaHashHook='perl -MCrypt::SmbHash -e "print join(q[:], ntlmgen \$ARGV[0]), $/;"'

Que collons és la última línia!!! Doncs l'error que no se com el vaig posar!

No apareix el botó de datepicker (escollir data)

IMPORTANT: Sembla ser que gosa utilitza els frameworks de javascript: prototype i script.aculo.us

La solució ha estat afegir la línia:

<script type="text/javascript" src="lightbox/builder.js"></script>

Al fitxer:

$ sudo joe /usr/share/gosa/ihtml/themes/default/headers.tpl

L'he afegir com a primer include de javascripts!

NOTA: En altres gosa he trobat que al Firebug si apareix el javascript builder.js inclòs, tot i que no trobo la línia que fa aquest include. POt ser es fa dinàmicament? Potser que estigui relaciona amb el fet de tenir xivatos (echos?)

Indicar quins són els UID que s'utilitzaran per als nous usuaris

Configuració d'exemple del fitxer /etc/gosa/gosa.conf:

  <main default="default"
       warnSSL="true"
       forceSSL="true"
       forceGlobals="true"
       ignoreLdapProperties="false"
       logging="true"
       listSummary="true"
       displayErrors="false"
       schemaCheck="true"
       copyPaste="true"
       ldapStats="false"
       storeFilterSettings="true"
       sendCompressedOutput="true"
       modificationDetectionAttribute="entryCSN"
       language="es_ES"
       theme="default"
       sessionLifetime="7200"
       templateCompileDirectory="/var/spool/gosa"
       debugLevel="0"
       sambaHashHook='perl -MCrypt::SmbHash -e "print join(q[:], ntlmgen \$ARGV[0]), $/;"'

   >

   <location name="Institut Montsià"
             config="ou=gosa,ou=configs,ou=systems,dc=insmontsia,dc=com"
             ldapSizelimit="3000"
             passwordDefaultHash="md5"
             accountPrimaryAttribute="cn"
             userRDN="ou=people"
             groupRDN="ou=groups"
             gidNumberBase="2000"
             uidNumberBase="2000"
             disabled_gosaSupportURI="gosa-si-secret@server:20081"
             disabled_gosaSupportTimeout="15"
             loginAttribute="uid"
             timezone="Europe/Madrid"
             honourUnitTags="false"  
             useSaslForKerberos="false"
             rfc2307bis="false"
             personalTitleInDN="false"
             idGenerator="{%givenName}{%sn}"
             sambaMachineAccountRDN="ou=Computers"
             strictNamingRules="true"
             mailAttribute="mail"
             gosaSharedPrefix="" 
             mailUserCreation="" 
             mailFolderCreation=""
             imapTimeout="10"
             honourIvbbAttributes="false"
             sambaSID="S-1-5-21-1539791675-2192341285-2760677840"
             sambaRidBase="1"
             enableSnapshots="false"
             snapshotBase="dc=localhost,dc=de"
             snapshotAdminDn="cn=admin,dc=localhost,dc=de"
             snapshotAdminPassword="secret"
             snapshotURI="ldap://localhost:389">

             <referral URI="ldap://localhost:389/dc=insmontsia,dc=com"
                       adminDn="cn=admin,dc=insmontsia,dc=com"
                       adminPassword="PARAULA_DE_PAS" />
   </location>
 </main>
</conf>

GOsa[admin]: (view) error : PHP error: Undefined index: user (/usr/share/gosa/plugins/personal/posix/class_posixAccount.inc, line 752)

Busca el gecos al objecte generic però sempre espera que sigui de tipus user!

/* Fill gecos */
    if (isset($this->parent) && $this->parent !== NULL){
      $this->gecos= rewrite($this->parent->by_object['user']->cn);
      if (!preg_match('/^[a-z0-9 -]+$/i', $this->gecos)){
        $this->gecos= "";
      }
    }

Problema perquè el meu objecte user és d'un altre tipus...

Pàgina en blanc

Solen ser degudes a un error de PHP però els errors de PHP no es mostren per defecte. Al fitxer /etc/gosa/gosa.conf cal posar l'opció:

displayErrors="true"

I recordeu d'aplicar els canvis:

$ sudo update-gosa

PHP

Es recomanable modificar els fitxer php.ini i posar els valors:

session.gc_maxlifetime = 100000
memory_limit = 100M

Plantilla per a les home d'usuari

You can create a template and use

\\FS01\%uid 

for example. If you create a new user, choose the template and GoSA will fill in %uid by the user ID.

in gosa.conf:

strictNamingRules="false"

Then you can use . in user IDs.

Idiomes. No funciona l'espanyol o altres idiomes

Gosa utilitza Gettext. Cal tenir instal·lats els locales del idioma que volem utilitzar i cal tornar a iniciar Apache. En castellà el locale és es_ES.UTF-8 (sense UTF-8 es veuen incorrectament les caràcters.)

Consulteu:

Gettext#No_funciona_gettext_es_ES_quan_estem_amb_un_sistema_amb_ca_ES

L'idioma a utilitzar el pot indicar l'usuari amb el paràmetre 'prefered language, i també es pot configurar al fitxer /etc/gosa/gosa.conf a la secció main:

 <main default="default"
       logging="true"
       listSummary="true"
       ...
       modificationDetectionAttribute="entryCSN"
       language=""

Si no s'indica res aleshores s'agafa del navegador. A Firefox cal indicar els idiomes desitjats a Edita > Preferències > Contingut > Llengües. Cal indicar:

language="es_ES.UTF-8"

Schema check failed. Ubuntu Server 9.04

Sembla ser que s'ignora per defecte el fitxer /etc/ldap/slapd.conf i tota la configuració està a /etc/ldap/slapd.d

$ sudo joe /etc/default/slapd

I posar el paràmetre:

SLAPD_CONF=/etc/ldap/slapd.conf

Undefined index: sambaAlgorithmicRidBase

Vegeu: https://oss.gonicus.de/labs/gosa/changeset/8282

Vegeu també: AlgorithmicRidBase

Catchable fatal error: Object of class * could not be converted to string in include/php_setup.inc on line 111

Vegeu: https://oss.gonicus.de/labs/gosa/changeset/5207

You're missing an administrative account for GOsa, you'll not be able to administrate anything!. Debian Sarge

Consulteu el FAQ de Gosa

Si obtenim l'error:

You're missing an administrative account for GOsa, you'll not be able to administrate anything

És que durant la configuració no s'ha generat l'usuari administrador.

1a Solució:

Molt possiblement l'error vingui de que no existien les unitats organitzatives people i groups durant la configuració de gosa. Podem tornar a configurar gosa esborrant el fitxer de configuració:

$ sudo rm /etc/gosa/gosa.conf

Creeu les unitats organitzatives i torneu a fer la instal·lació. També us heu d'assegurar d'haver carregat els schemas de gosa a Ldap.

Segona solució:

Primer de tot, comproveu si teniu els següent objectes a l'arbre Ldap

DN: ou=gosa,ou=configs,ou=systems,dc=domain
DN: cn=admin,ou=people,dc=domain
DN: cn=GOsa Administrators,ou=groups,dc=domain

L'usuari admin (el nom de l'usuari es decideix durant la configuració) ha de ser del grup GOsa Administrators és a dir l'objecte cn=GOsa Administrators,ou=groups,dc=domain ha de tenir l'atribut:

memberUID admin
NOTA: A Debian la versió de Gosa és una mica antiga i sembla que hi ha un bug amb la creació del grup d'administradors de GOsa
https://oss.gonicus.de/labs/gosa/wiki/FAQ

Si no el teniu seguiu les següents passes:

Creem un fitxer ldif. Per exemple

$ sudo joe gosaconfigsystems.ldif
dn: ou=systems,dc=domain
objectClass: organizationalUnit
ou: systems

dn: ou=configs,ou=systems,dc=domain
objectClass: organizationalUnit
ou: configs 

dn: ou=gosa,ou=configs,dc=domain
objectClass: organizationalUnit
ou: gosa

On a dc=domain heu de posar la vostra base de Ldap. Per exemple:

$ sudo joe gosaconfigsystems.ldif
dn: ou=systems,dc=aulalinux,dc=ice,dc=upc,dc=es
objectClass: organizationalUnit
ou: systems

dn: ou=configs,ou=systems,dc=aulalinux,dc=ice,dc=upc,dc=es
objectClass: organizationalUnit
ou: configs 

dn: ou=gosa,ou=configs,dc=aulalinux,dc=ice,dc=upc,dc=es
objectClass: organizationalUnit
ou: gosa

Recursos':

Allowed memory size of 8388608 bytes exhausted (tried tot allocate ...)

Aquest error ens esta indicant que PHP no té suficient memòria per treballar amb gosa. Editeu el fitxer php.ini:

PHP 4:

$ sudo joe /etc/php4/apache2/php.ini

PHP 5:

$ sudo joe /etc/php5/apache2/php.ini

Localitzeu la variable:

memory_limit

I la incrementeu fins a un valor que com a mínim sigui el que ha intentat d'utilitzar gosa (tried tot allocate X). Per exemple:

memory_limit = 25M

Warning: memory is getting low - please increase the memory_limit!

Consulteu l'apartat anterior

No es mostra l'ajuda

S'ha solucionat amb:

$ sudo apt-get update;sudo apt-get -f install
$ sudo apt-get dist-upgrade

Content Encoding Error

Si tenim algun error al codi PHP de gosa i està activada la sortida comprimida al fitxer /etc/gosa/gosa.conf ens pot donar aquest error. Podeu comentar desactivar temporalment la compressió:

$ sudo joe /etc/gosa/gosa.conf
sendCompressedOutput="false"

No funcionen les ACL (els usuaris no tenen els permisos indicats)

Molt de compte no us deixeu:

Añadir opciones de filtrado:

Amb algun valor!!! Si ho feu les ACL deixen de comportar-se correctament!?

NOTA: Pot ser que estigui mal traduït el camp?!

Mostra un màxim de 200 entrades. A DHCP no avisa de que s'està mostrant el màxim

Per defecte el sizelimit de les cerques ldap (abans el cap s'anomenava sizelimit ara és ldapSizeLimit) és 200. normalment si estem atents veurem un boto que posa Configurar i que ens permet establir temporalment una mida major si fem una consulta que reorni més registres. El problema és que en algunes vistes com la del servei DHCP no ho fa. Per canviar el valor per defecte:

$ sudo joe /etc/gosa/gosa.conf
... 
   <location name="Institut Ebre"

ldapSizelimit="3000"

             passwordDefaultHash="md5"
             accountPrimaryAttribute="cn"
             userRDN="ou=people"
...

I per aplicar els canvis cal fer:

$ sudo update-gosa

Sortir de la sessió oberta i tornar entrar.

NOTA: Cal reiniciar també Apache?


NOTA: També heu de tenir en compte que el servidor Ldap pot tenir un altre sizelimit. Consulteu Ldap

Text en negreta

Com canviar la paraula de pas de l'usuari admin de gosa?

Gosa#Com_canviar_la_paraula_de_pas_de_l.27usuari_admin_de_gosa.3F

L'usuari admin ha perdut tot els privilegis

Els privilegis de l'usuari admin són controlats per una ACL que es troba a l'arrel de l'arbre ldap. Del següent exemple ldif:

dn: dc=todo,dc=openfpnet,dc=guifi,dc=net
objectClass: dcObject
objectClass: gosaAcl
objectClass: gosaDepartment
objectClass: organization
objectClass: top
dc: todo
o: todo
description: todo
ou: todo
gosaAclEntry: 0:psub:Y249U3lzdGVtIEFkbWluaXN0cmF0b3ItYWRtaW4sb3U9cGVvcGxlLGR
 jPXRvZG8sZGM9b3BlbmZwbmV0LGRjPWd1aWZpLGRjPW5ldA==:all/all:cmdrw

L'entrada important és gosaAclEntry. Es tracta d'una ACL que dona tots els permisos (all/all:cmdrw) a l'usuari Y249U3lzdGVtIEFkbWluaXN0cmF0b3ItYWRtaW4sb3U9cGVvcGxlLGRjPXRvZG8sZGM9b3BlbmZwbmV0LGRjPWd1aWZpLGRjPW5ldA== (està en base64) per a l'objecte arrel i subojectes de forma permanent (psub: permanent subtree).L'usuari a l'exemple és:

 $ echo -n "Y249U3lzdGVtIEFkbWluaXN0cmF0b3ItYWRtaW4sb3U9cGVvcGxlLGRjPXRvZG8sZGM9b3BlbmZwbmV0LGRjPWd1aWZpLGRjPW5ldA==" | base64 -d
 cn=System Administrator-admin,ou=people,dc=todo,dc=openfpnet,dc=guifi,dc=net

Segurament el vostre error és degut a que ha canviat el DN de l'usuari admin però no s0ha canviat la seva ACL a l'objecte arrel!

Per a més informació consulteu Gosa ACLs

The configuration file you are using is outdated. Please move the GOsa configuration file away to run the GOsa setup again.

El fitxer principal de configuració de gosa (/etc/gosa/gosa.conf) és un XML on a l'objecte arrel hi ha un atribut anomenat:

configVersion

Aquest atribut conté un hash md5 que és diferent per a cada versió de gosa i això permet identificar si el fitxer de configuració està desactualitzat.

L'instal·lador de gosa utilitza Smarty per a partir d'una plantilla de fitxer gosa.conf generar el fitxer gosa.conf definitiu de després de la instal.lació. La plantilla la trobareu a:

/usr/share/doc/gosa/gosa.conf

Veureu que el valor del atribut configVersion a la plantilla és la variable

{$config_checksum}

Que és establerta per l'instal·lador a la línia 49 del fitxer /usr/share/gosa/setup/class_setupStep_Finish.inc

$ grep -n "config_checksum" -r .
./setup/class_setupStep_Finish.inc:49:    $smarty->assign("config_checksum", md5(file_get_contents(CONFIG_TEMPLATE_DIR.$this->gosa_conf_contrib)));

Podeu veure que es tracte de una suma MD5del fitxer plantilla /usr/share/doc/gosa/gosa.conf:

$ md5sum /usr/share/doc/gosa/gosa.conf
edb33ed1745798da76048582c2f16a48  /usr/share/doc/gosa/gosa.conf

Vegeu també

Enllaços externs