<para>Para o escritório do autor, era necessária há muito tempo uma solução de <acronym>PIM</acronym> que lhe permitisse partilhar os dados, de modo que a sua secretária e ele pudessem partilhar os contactos, compromissos e assim por diante. Sendo um utilizador do &kde;, o autor ouviu falar no projecto Kroupware e esperou pela sua finalização. Mas, quando viu a complicação da arquitectura e da configuração do servidor <application>Kolab</application> 1.0 (o lado do servidor do projecto), ele desistiu, ficando à espera de uma versão <application>Kolab</application> 2.0 mais simples. Em qualquer dos casos, as coisas do <application>Kolab</application> eram demasiadas para as necessidades em questão. Felizmente, no Wiki do &kde;, encontraram-se algumas conversas de <acronym>IRC</acronym>, onde se falava sobre a partilha de dados sem a infra-estrutura do <application>Kolab</application> ... mmm muito interessante!</para>
<para>Para os pequenos escritórios e necessidades, poderá ter o &kontact; a usar dados partilhados sem ter a necessidade de instalar o servidor <application>Kolab</application> ou outra infra-estrutura de 'groupware'. Ela poderá funcionar apenas com um servidor de <acronym>IMAP</acronym>, que poderá ser configurado facilmente.</para>
<para>O cenário em questão é um servidor com o 'Debian unstable' e o &kde; 3.4. O acesso é feito ao &kontact; e a outras aplicações do GNU/Linux a partir do Windows com o Cygwin/X, enquanto se espera que oo projecto Wine seja capaz de executar os últimos programas de Windows que o autor necessita (e que não estão disponíveis no GNU/Linux). Pretende-se partilhar contactos, eventos, itens por-fazer e notas com a secretária.</para>
<para>Esta definição vem do <ulink url="http://computeruser.com">ComputerUser.com High-Tech Dictionary:</ulink> <blockquote><para>Internet Message Access Protocol. Um protocolo que permite a um utilizador efectuar certas funções de correio electrónico num servidor remoto, em vez de ser num computador local. Através do IMAP, o utilizador poderá criar, remover ou mudar os nomes das caixas de correio, obter mensagens novas, removê-las e efectuar funções de pesquisa no correio. É necessário um protocolo separado para o envio de correio. Também é chamado de Internet Mail Access Protocol.</para></blockquote> </para>
<para>Por isso, pode ser considerado um sistema de armazenamento de dados. Para o usar, necessita de ter um servidor de <acronym>IMAP</acronym>, como o <application>Cyrus</application>, o <application>Courier</application> ou o <application>UW</application>.</para>
<para>O <application>Kolab</application> traz a possibilidade de partilhar dados entre vários clientes. Possibilita à sua secretária usar o <application>Outlook</application> a si usar o &kontact;, por exemplo.</para>
<para>Terá de ter uma interface de configuração que faça a gestão de utilizadores, a configuração das contas de correio, os dados de configuração do <acronym>LDAP</acronym> central e do servidor de livro de endereços, a filtragem de lixo electrónico e vírus, os programas de férias, o tratamento da lista de livre-ocupado, a gestão de recursos (salas, carros), grupos, listas de distribuição, tratamento automático de convites, &etc;</para>
<para>Mas isso poderá causar problemas iniciais de configuração. Para um inexperiente como o autor, significa um pesadelo realmente longo e frustrante e muita complexidade para o gerir, assim que funcionar. Como tal, não obrigado, e passa-se a usar apenas o <acronym>IMAP</acronym> simples.</para>
<para>A escolha vai para o <application>Cyrus</application>, que faz parte do conjunto de aplicações <application>Kolab</application>, por isso, se quiser mudar no futuro para o <application>Kolab</application>, já estará habituado a ele.</para> <para>Vejamos a instalação e configuração!</para>
<computeroutput>Installing cyrus21-imapd...</computeroutput><lineannotation>O instalador pergunta algumas coisas esquisitas sobre um endereço de procura... pelo que se carrega simplesmente em <keycap>Enter</keycap></lineannotation>.</screen>
<para>O instalador também criou o utilizador <systemitem class="username">cyrus</systemitem>, que está no grupo (criado automaticamente)<systemitem class="groupname">sasl</systemitem>, que é o <quote>dono</quote> de todos os ficheiros do 'cyrus'. No fim, com o comando <command>ps <option>-A</option></command>, poderá descobrir os processos novos: <command>cyrmaster</command> e <command>notifyd</command>.</para>
<para>O problema real na configuração do <application>Cyrus</application> está na autenticação, simplesmente porque não é trivial e o autor deste texto tem poucos conhecimentos do que está a fazer.</para>
<para>O <application>Cyrus</application> pode usar vários mecanismos de <acronym>SASL</acronym> (Simple Authentication and Security Layer), sendo o predefinido o 'sasldb' (guarda os utilizadores e as senhas no ficheiro de senhas do SASL <filename>sasldb</filename>), mas também são suportados o getpwent, kerberos4, kerberos5, PAM, rimap, shadow e LDAP.</para>
<para>Dado que não se pretende definir os utilizadores/senhas diferentes dos usados para aceder ao sistema &Linux;, pode-se optar por usar o <quote>shadow</quote>, de modo que o <application>Cyrus</application> use as senhas do &Linux; para a autenticação.</para>
<para>Para o fazer, terá de se dizer ao 'sasl' para usar o <command>saslauthd</command> como método de autenticação de senhas, e depois configurar o <command>saslauthd</command> para usar o <quote>shadow</quote> (ou o <quote>getpwent</quote>) como mecanismo de autenticação.</para>
<para>Ok, vamos começar!</para>
<para>Como <systemitem class="username">root</systemitem>, mude a senha de Linux do utilizador <systemitem class="username">cyrus</systemitem>:</para>
<para>Indique a senha que deseja (e que se recorde); para este exemplo, será configurada a <quote>cyrus</quote> como a senha do administrador <application>cyrus</application>.</para>
<programlisting>sasl_pwcheck_method: <userinput>saslauthd</userinput> <lineannotation>em vez do valor predefinido <literal>auxprop</literal></lineannotation></programlisting>
<para>remova comentário <literal>#</literal> da linha:</para>
<programlisting>#admins: cyrus</programlisting>
<para>desta forma, poderá administrar o <application>cyrus</application>, entrando com o utilizador <systemitem class="username">cyrus</systemitem> (as fantasias que poderão surgir!)</para>
<para>(caso contrário, o <application>saslauthd</application> não irá iniciar no arranque, mesmo que seja referenciado em algum <filename class="directory">/etc/rcx.d</filename>!)</para>
<para>e, em vez de <literal>MECHANISMS="pam"</literal>, coloque <userinput>MECHANISMS="shadow"</userinput>; desta forma, no arranque, será executado um <command>saslauthd</command> <option>-a <parameter>shadow</parameter></option>.</para>
<para>Logo que tenha saído do seu editor, reinicie o <application>sasl</application> e o <application>cyrus</application>.</para>
<para>Para testar o <acronym>IMAP</acronym>:</para>
<para>Ser-lhe-á pedida a senha do <systemitem class="username">cyrus</systemitem> (utilizador), como tal, introduza-a.</para>
<para>Se o utilizador <systemitem class="username">cyrus</systemitem> estiver correctamente autenticado, irão aparecer as seguintes linhas:</para>
<screen><computeroutput>S: L01 OK User logged in
Authenticated.</computeroutput></screen>
<para>Para sair, escreva <userinput>. logout</userinput> (&ie; ponto espaço <quote>logout</quote>)</para>
<para>Agora, adicione um utilizador chamado <systemitem class="username">groupware</systemitem> e defina uma senha para o mesmo, usando as suas ferramentas normais do sistema. Deverá estar num grupo sem privilégios, como o <systemitem class="groupname">nobody</systemitem>, e não necessita de uma sessão ou de uma pasta pessoal.</para>
<para>Agora, terá de se criar o utilizador e um <acronym>IMAP</acronym> no <application>cyrus</application> também:</para>
<screen># <userinput><command>cyradm</command> <option>--user cyrus localhost</option></userinput>
depois de introduzir a senha do utilizador de administração <systemitem class="username">cyrus</systemitem>, irá obter a linha de comandos <prompt>localhost></prompt>
-rw------- 1 cyrus mail 76 Oct 29 20:55 cyrus.index</computeroutput></screen>
<para>Agora, deverá ser capaz de se ligar com um cliente de <acronym>IMAP</acronym> como o utilizador <systemitem class="username">groupware</systemitem> e ver a <literal>INBOX</literal> (pasta de Recebidos).</para>
<note><para>No protocolo <acronym>IMAP</acronym>, a selecção da caixa de correio <literal>INBOX</literal> é uma palavra-mágica, uma espécie de <quote>alcunha</quote> para a estrutura de pastas acima. O cliente vê a <literal>INBOX</literal> e o servidor de <acronym>IMAP</acronym> mapeia-a na pasta <filename class="directory">/var/spool/cyrus/mail/...</filename> e respectiva estrutura de ficheiros.</para></note>
<para>O autor liga-se ao PC servidor do escritório, com GNU/Linux (uma espécie de "caixa negra" sem monitor nem teclado), a partir de 2 PCs com &Windows; 2000, através do <application>Cygwin/X</application>, usando-os como um servidor de X-Window server (num futuro próximo, ele pretende substituir ambos com 2 clientes mínimos mini-ITX e usando o LTSP). Com esta configuração, todos os utilizadores correm o &kontact; na mesma máquina em que o <application>Cyrus</application> está instalado e a correr (o 'localhost').</para>
<step><para>Crie uma conta de <acronym>IMAP</acronym> no <application>Cyrus</application> para o utilizador falso <systemitem class="username">groupware</systemitem> (o que já foi feito anteriormente!)</para></step>
<step><para>Crie/configure uma conta de <acronym>IMAP</acronym> no &kmail; para se autenticar com esse utilizador</para></step> <step><para>Use o 'tderesources' para fazer com que os componentes do &kontact; funcionem com os dados retirados da fonte de <acronym>IMAP</acronym></para></step>
<step><para>Active a funcionalidade de 'groupware' e crie as subpastas relacionadas com este nessa <literal>INBOX</literal> do <acronym>IMAP</acronym> (se não tiver sido já feito)</para></step>
<step><para>Divirta-se com o &kontact; e os dados partilhados através do IMAP da <application>Cyrus</application></para></step>
<para>Para tal, ligue-se ao &kde; com a primeira conta do <quote>utilizador real</quote>, à qual pretenda oferecer as funcionalidades de 'groupware'.</para>
<para>Crie-se então a conta de IMAP no &kmail;.</para>
<para>Execute o &kontact; e seleccione o <guilabel>E-Mail</guilabel> (o componente do &kmail;). No menu, escolha a opção <menuchoice><guimenu>Configuração</guimenu><guimenuitem>Configurar o KMail </guimenuitem><guilabel>Contas</guilabel><guilabel>página Recepção</guilabel></menuchoice> e carregue no botão <guibutton>Adicionar...</guibutton>. Será então pedido o tipo da sua conta de correio, onde irá seleccionar a opção <guilabel>IMAP desligado</guilabel> (não seleccione o <guilabel>IMAP</guilabel> simples). Finalmente, na página <guilabel>Geral</guilabel>, indique os seguintes dados:</para>
<para>Assinale a opção <guilabel>guardar a senha de IMAP</guilabel>, para que não lhe seja pedida, da próxima vez que executar o &kontact;. Assinale a opção <guilabel>Activar a verificação periódica de correio</guilabel> e defina um valor em minutos.</para>
<para>Lembre-se que foi assinalado o tipo de conta <guilabel>IMAP desligado</guilabel>. Isto tem o efeito de que uma cópia dos dados de 'groupware' é guardada <quote>localmente</quote> no cliente (sob a pasta pessoal) e que é sincronizada, sempre que o cliente se liga. Isto parece muito ineficiente, dado que os seus dados são duplicados várias vezes (&ie; se tiver 10 utilizadores que usam o &kontact;, terá 10+1 vezes os mesmos dados), mas é a única forma de fazer com que as coisas funcionem rapidamente dado que, em todas as ligações, o &kontact; tem de obter todos os dados e fazer com que o &korganizer; e o &kaddressbook; os interpretem. Se usar o <quote>IMAP desligado</quote>, os dados são mantidos localmente em 'cache', sendo enviado apenas o <quote>delta</quote> (&ie; os dados alterados).</para>
<para>Por outro lado, se os seus utilizadores executam o &korganizer; no mesmo PC que corre o servidor de <acronym>IMAP</acronym>, parece razoável usar o <acronym>IMAP</acronym> (este é chamado de <quote>IMAP desligado</quote>) para poupar espaço, dado que a velocidade de transferência não deverá ser um problema. Porém, infelizmente, isto não funciona, porque o &kontact; não actualiza automaticamente a pasta de <guilabel>Calendário</guilabel> no <quote>IMAP ligado</quote>, como tal, você não será actualizado quando alguém adicionar eventos (terá de mudar manualmente para a aplicação &kmail; e carregar na pasta de <guilabel>Calendário</guilabel>). Para além disso, no arranque, quando ele lê as pastas de <guilabel>Calendário</guilabel>, poderá ver uma intermitência tremenda e uma actualização lenta dos dados.</para>
<para>Agora, terá de se dizer ao &kontact; para usar o <acronym>IMAP</acronym> como fonte de dados para os seus vários componentes. No &kmenu;, escolha o <guimenuitem>Executar um comando</guimenuitem>, execute o <userinput><command>tdecmshell tderesources</command></userinput>. Na lista, seleccione os <guilabel>Contactos</guilabel> e carregue depois no botão <guibutton>Adicionar...</guibutton>, onde poderá escolher o <guilabel>Livro de endereços num Servidor de IMAP através do KMail</guilabel>. Depois, seleccione essa linha nova e carregue em <guibutton>Usar por Omissão</guibutton>. Faça o mesmo para o <guilabel>Calendário</guilabel> e para as <guilabel>Notas</guilabel>.</para>
<para>Escolha no menu a opção <menuchoice><guimenu>Configuração</guimenu><guimenuitem>Configurar o KMail</guimenuitem><guilabel>Diversos</guilabel><guilabel>Groupware</guilabel></menuchoice></para>
<para>Escolha o <guilabel>Inglês</guilabel> como <guilabel>Língua das pastas de 'groupware'</guilabel> (isto é no caso de já ter as pastas criadas no servidor de <acronym>IMAP</acronym> por um outro programa numa língua diferente).</para>
<para>Agora, vá para a opção <guilabel>As pastas de recursos estão na conta</guilabel> e seleccione a subpasta <guilabel>Inbox</guilabel> da pasta <guilabel>dados_escritorio</guilabel>.</para>
<para>Desligue a opção <guilabel>Esconder as pastas de 'groupware'</guilabel> por agora, para que se possa ver o que acontecerá. Poderá voltar aqui e assinalá-la, logo que esteja tudo bem.</para>
<para>Quando carregar em OK, aparecer-lhe-á a mensagem: <computeroutput>O &kmail; irá agora criar as pastas necessárias no recurso de IMAP como subpastas da Inbox</computeroutput> </para>
<para>Se não quiser isto, carregue em <guibutton>Não</guibutton>, pelo que o recurso de <acronym>IMAP</acronym> ficará desactivado. Carregue em <guibutton>Sim</guibutton> (isto só acontece da primeira vez com o primeiro <quote>utilizador real</quote>). Irá ver imediatamente que, na árvore de pastas do &kmail;, sob a pasta <menuchoice><guilabel>dados_escritorio</guilabel><guilabel>Inbox</guilabel></menuchoice>, serão criadas as subpastas:</para>
-rw------- 1 cyrus mail 76 Oct 31 15:28 cyrus.index</computeroutput></screen>
<para>Como pode ver, o <guilabel>office_gwdata/Inbox</guilabel> está guardado, não de forma local na pasta do utilizador actual do &kontact;, mas sim nas pastas de <acronym>IMAP</acronym> do utilizador <systemitem class="username">groupware</systemitem>.</para>
<para>Agora, o &kontact; está pronto para trabalhar e guardar os dados aí. Na aplicação de calendário, se a conta de <acronym>IMAP</acronym> do &kmail; era do tipo <quote>desligado</quote>, a janela do <guilabel>recurso</guilabel> irá mostrar o item <guilabel>Recurso de IMAP</guilabel> com 3 sub-itens, que são referências para ficheiros locais do utilizador. Por outro lado, a aplicação dos <guilabel>Contacts</guilabel> não mostra sub-itens por baixo do <guilabel>Recurso de IMAP</guilabel>.</para>
<para>Poderá agora ligar-se ao &kde; com um utilizador diferente e configurar o seu cliente do &kontact; de uma forma muito semelhante:</para>
<para>Abra o &kontact; e, no componente de <guilabel>Correio</guilabel>, adicione uma conta de <acronym>IMAP</acronym> que indique como <guilabel>servidor</guilabel> o computador em que o servidor de <application>Cyrus</application> se executa (neste caso, o <literal>192.168.1.3</literal>).</para>
<para>Lembre-se de assinalar a opção <guilabel>Activar a verificação periódica do correio</guilabel> e defina um valor em minutos. Quando confirmar, não lhe será pedida a confirmação da criação das subpastas (dado que estas existem no servidor de <acronym>IMAP</acronym>), pelo que as verá na árvore de pastas.</para>
<para>Tenha em atenção que, no <quote><acronym>IMAP</acronym> desligado</quote>, os dados são transmitidos de um cliente para um servidor de <acronym>IMAP</acronym>, apenas quando o cliente se ligar para verificar o correio novo. Como tal, se tiver os seus clientes do &kontact; com um <guilabel>intervalo de verificação de correio</guilabel> de, por exemplo, 5 minutos, no pior dos casos, terá um atraso de 10 minutos entre a escrita do evento e a sua aparição nos outros utilizadores.</para>
<title>Como Ter Acesso Apenas para Leitura</title>
<note><para>Tenha cuidado, dado que se confirma que a implementação de <acronym>IMAP</acronym> das Notas no &kontact; anterior à versão do 1.01 tem problemas, pelo que esta configuração não irá funcionar nesse caso; aí, se as quiser usar, terá de usar a configuração anterior.</para></note>
<para>Na configuração anterior, existe o mesmo utilizador <quote>falso</quote>, chamado <systemitem class="username">groupware</systemitem>, que é usado por todos os utilizadores <quote>reais</quote> do &kontact; (&ie; o <systemitem class="username">antonio</systemitem>, o <systemitem class="username">ze</systemitem>, a <systemitem class="username">amanda</systemitem>, &etc;), através da conta de <acronym>IMAP</acronym> com o seu utilizador e senha. Porém, desta forma, todos os utilizadores reais têm as mesmas permissões de leitura/escrita dos outros, dado que toda a gente se liga com o utilizador <systemitem class="username">groupware</systemitem> ao servidor de <acronym>IMAP</acronym>.</para>
<para>Para limitar o acesso a alguns utilizadores (tipicamente, oferecendo o acesso apenas para leitura), serão usadas as <acronym>ACL</acronym>s (Access Control Lists - Listas de Controlo de Acesso).</para>
<para>Seleccione no &kmail; uma subpasta da caixa de correio <guilabel>dados_escritorio</guilabel>, como por exemplo a <guilabel>Calendar</guilabel> e carregue com o botão direito do rato. Seleccione a opção <guilabel>Propriedades</guilabel><guilabel>Controlo de Acesso</guilabel>. Aqui, poderá indicar os utilizadores a que deseja dar acesso a esta pasta, bem como o que eles poderão fazer.</para>
<para>Só para experimentar a troca de eventos, serão dadas <quote>Todas</quote> as permissões ao utilizador <systemitem class="username">maria</systemitem></para>
<para>Ao nível do <application>cyrus</application> (no <acronym>PC</acronym> que está a correr o servidor de <acronym>IMAP</acronym> da Cyrus, com as ferramentas do <application>cyrus</application>), terá primeiro de adicionar o utilizador <systemitem class="username">maria</systemitem>, para que seja um utilizador reconhecido de <acronym>IMAP</acronym>, e criar uma pasta de <acronym>IMAP</acronym> para ela.</para>
<para>Depois, ligue-se ao GNU/Linux como a <systemitem class="username">maria</systemitem> e entre no &kontact;. Como foi mostrado anteriormente, será configurada uma conta de <acronym>IMAP</acronym> no &kmail; com os mesmos dados, com a diferença do utilizador (em vez do utilizador falso <systemitem class="username">groupware</systemitem> e a senha senha, serão usados a <systemitem class="username">maria</systemitem> e a senha dela).</para>
<para>Na árvore de pastas do &kmail;, desta vez verá a seguinte estrutura: <menuchoice><guimenu>dados_escritorio</guimenu><guisubmenu>utilizador</guisubmenu> <guisubmenu>groupware</guisubmenu><guimenuitem>Calendário e Tarefas</guimenuitem></menuchoice>. Verifique o correio (<menuchoice><guimenu>Ficheiro</guimenu><guimenuitem>Verificar o Correio</guimenuitem></menuchoice>) pelo que terá também uma pasta <quote>inbox</quote> sob a <quote>dados_escritorio</quote>.</para>
<para>Agora, active a funcionalidade de 'groupware' do &kmail; e, no campo <guilabel>As pastas de recursos são subpastas de </guilabel>, coloque a <guimenuitem>inbox</guimenuitem>, que é uma subpasta da <quote>dados_escritorio</quote>.</para>
<para>Agora, active a funcionalidade de 'groupware' do &kmail; e, no campo <guilabel>As pastas de recursos são subpastas de </guilabel>, coloque a <guimenuitem>inbox</guimenuitem>, que é uma subpasta da <guisubmenu>dados_escritorio</guisubmenu>.</para>
<para>A <quote>inbox</quote>, com o Calendar, Contacts, Notes, Tasks e a Journal, que estão gravadas nas pastas de <acronym>IMAP</acronym> da <systemitem class="username">maria</systemitem>, no servidor de <acronym>IMAP</acronym></para>
<para>O <quote>utilizador</quote>, com a subpasta <quote>groupware</quote> e as subpastas a que a <systemitem class="username">maria</systemitem> tme acesso (neste exemplo, à Calendar (Calendário) e às Tasks (Tarefas))</para>
<para>Carregue com o &RMB; na pasta <quote>Calendar</quote> do utilizador e verifique se é do tipo Calendário (se não, defina-a como tal) e se a <quote>utilizador</quote><quote>Tasks</quote> é do tipo de Tarefas.</para>
<para>Agora, no Calendário, terá dois recursos de <acronym>IMAP</acronym> disponíveis, nos quais poderá escrever; como tal, se criar um novo evento, ser-lhe-á perguntado qual o que será usado (ou, se deixar disponíveis os recursos, locais, terá então 3!).</para>
<para>Terá de ir à pequena janela do lado esquerdo no Calendário, a que mostra os recursos disponíveis, e desligar os que não apontam para o local <guilabel>.groupware.directory</guilabel> (veja a parte final de cada pasta de recursos).</para>
<para>O autor considera-se pouco experiente e, para este HOWTO, só ofereceu o seu tempo e vontade. Para o conhecimento, ele deseja agradecer a algumas pessoas nos canis da 'freenode' pela sua competência, paciência e vontade de ajudar.</para>