Марко
Менарди (Marco Menardi)
gnu@kde.org
Драган
Пантелић

    falcon-10@gmx.de

превод

# Дељење података Контактом преко ИМАП‑а

## Увод

За моју малу канцеларију дуго сам тражио ПИМ решење које би ми омогућило дељење података, да моја секретарица и ја можемо да делимо контакте, састанке и сл. Будући корисник КДЕ‑а, чуо сам о пројекту Крупвер, и чекам његово довршење. Али, када сам видео колико је компликована архитектура и постављање Колабовог сервера 1.0 (серверска страна пројекта), одустао сам, чекајући лакши за размештање Колаб 2.0. У сваком случају, могућности Колаба биле су очигледно преобимне за моје потребе. Срећом, нашао сам на викију КДЕ‑а део ИРЦ разговора у којем се говорило о дељењу података без инфраструктуре Колаба... занимљиво!

За мале канцеларије и потребе, можете учинити да Контакт користи дељење података без потребе за инсталирањем Колабовог сервера или друге групверске позадине. Може да ради само са ИМАП сервером, који се лако дâ поставити.

Мој сценарио је сервер са Дебијаном нестабилним и КДЕ‑ом 3.4. Контакту и осталим изванредним програмима са Гнуа‑Линукса приступам из Виндоуза путем Сигвина‑икс, док чекам да пројекат Вине буде у стању да покрене и последње виндоуз програме који ми требају (а који нису расположиви под Гнуом-Линуксом). Желим да делим контакте, догађаје, обавезе и белешке са својом секретарицом.

## Шта је ИМАП?

This definition is from the ComputerUser.com High-Tech Dictionary:

> Internet Message Access Protocol. A protocol that allows a user to perform certain electronic mail functions on a remote server rather than on a local computer. Through IMAP the user can create, delete, or rename mailboxes; get new messages; delete messages; and perform search functions on mail. A separate protocol is required for sending mail. Also called Internet Mail Access Protocol.

Дакле, може се схватити као складиште података. За коришћење вам треба ИМАП сервер, као што су Сајрус, Курир или УВ.

## Колаб или ИМАП?

Колаб доноси могућност дељења података између различитих клијената. То омогућава вашој секретарици да користи Аутлук, док ви, на пример, користите Контакт.

Имаћете поставно сучеље којим се управља корисницима, постављање поштанског налога, централни ЛДАП сервер за поставне податке и адресар, филтрирање спама и вируса, скрипте за годишње одморе, руковање слободно-заузетим, руковање ресурсима (просторије, аутомобили), групама, дистрибуционим листама, аутоматско руковање позивницама, итд.

Но, ово може проузроковати тешкоће у почетној постави. За новајлију попут мене то значи ноћну мору, и превише сложености у управљању чак и када напокон све проради. Дакле, не хвала, држаћу се једноставног ИМАП‑а.

## Како поставити ИМАП сервер Сајрус

Мој избор пада на Сајрус, део софтверског пакета Колаб, па ако ћу се већ окренути Колабу у будућности, барем ћу га овим упознати.

Покренимо инсталацију и поставу!

Постанимо root.

    # apt-get install cyrus21-imapd cyrus21-common cyrus21-admin cyrus21-client sasl-bin sasl2-bin
    Installing cyrus21-imapd... Инсталатор пита нешто о адреси за претрагу, што нисам разумео... Једноставно притиснух Enter.

Инсталатор је такође створио корисника cyrus који је у (аутоматски створеној) групи sasl, која је „власни“ свих Сајрусових фајлова. Коначно, наредбом `ps`-A`` можете наћи нове процесе: `cyrmaster` и `notifyd`.

Прави проблем при постављању Сајруса јесте аутентификација, зато што није тривијална, а ја сам почетник са ограниченим знањем о овоме што радим.

Сајрус може да користи разне механизме САСЛ‑а (слој за једноставну аутентификацију и безбедност), где је подразумевани `sasldb` (складишти корисничка имена и лозинке у фајлу САСЛ тајни `sasldb`), али су подржани и `getpwent`, кербер‑4, кербер‑5, ПАМ, `rimap`, `shadow` и ЛДАП.

Пошто не желим да дефинишем кориснике и лозинке различите од оних који приступају мом рачунару под Линуксом, бирам механизам фајла `shadow`, тако да Сајрус користи системске лозинке за аутентификовање.

Да бисмо ово урадили, треба да кажемо САСЛ‑у да користи наредбу `saslauthd` као метод аутентификације лозинки, а затим наредби `saslauthd` да користи `shadow` (или `getpwent`) као механизам аутентификације.

У реду! Кренимо!

Као корисник root, измените системску лозинку корисника cyrus:

    # passwd cyrus

Унесите жељену лозинку (коју ћете лако запамтити), за овај пример то нека буде `cyrus`, као администраторску лозинку за Сајрус.

    # vi/etc/imapd.conf

    sasl_pwcheck_method: saslauthd  уместо подразумеваног auxprop

уклоните примедбу `#` из реда:

    #admins: cyrus

овако можете управљати Сајрусом тако што се пријавите као корисник cyrus (ала ми је замисао!)

    # vi /etc/default/saslauthd

Откоментаришите ред:

    # START=yes

(иначе се `saslauthd` неће покренути током подизања, чак иако је поменута у неком од фајлова `/etc/rcx.d`!)

и уместо `MECHANISMS="pam"` ставите `MECHANISMS="shadow"`, чиме ће при подизању бити извршено `saslauthd` `-a `shadow``.

Кад изађете из уређивача, поново покрените САСЛ и Сајрус.

За пробу ИМАП‑а:

    su cyrus
    $ imtest -m login -p imap localhost

Упитаће вас за лозинку корисника cyrus, па је унесите.

Ако је корисник cyrus правилно аутентификован, појавиће се следећи редови:

    S: L01 OK User logged in
    Authenticated.

За излаз, укуцајте `. logout` (тј. тачку, размак, `logout`)

Сада додајте корисника по имену groupware и поставите његову лозинку, користећи уобичајене системске алатке. Требало би да буде у неповлашћеној групи, попут nobody, и да не захтева пријавну шкољку или домаћу фасциклу.

Сада такође треба да створимо корисника и ИМАП у Сајрусу:

    # cyradm --user cyrus localhost
     после уноса лозинке за административног корисника cyrus, добијате упит localhost>
    localhost> cm user.groupware
    localhost> lm приказује управо направљено сандуче
    user.groupware (\HasNoChildren))
    localhost> quit

За списак расположивих наредби можете унети ``help``.

Овим можете проверити шта се догодило:

    # ls -l /var/spool/cyrus/mail/g/user/groupware
    total 12
    -rw------- 1 cyrus mail          4 Oct 29 20:55 cyrus.cache
    -rw------- 1 cyrus mail 155 Oct 29 20:55 cyrus.header
    -rw------- 1 cyrus mail 76 Oct 29 20:55 cyrus.index

Сад би требало да можете да се повежете са ИМАП клијентом као корисник groupware и видите `INBOX`.

У протоколу ИМАП, одабир сандучета `INBOX` је чаробна реч, нешто као „алијас“ за горњу структуру фасцикли. Клијент види `INBOX`, а ИМАП сервер га мапира у фасциклу и структуру фајлова `/var/spool/cyrus/mail/...`.

## Постављање Контактових клијената

На свој канцеларијски сервер под Гнуом-Линуксом (нека врста „црне кутије“ без монитора и тастатуре) повезујем се са два рачунара под Виндоуза 2000, помоћу Сигвина‑икс, користећи их као икс сервер (у ближој будућности надам се да ћу оба заменити двама мини‑ИТИкс танким клијентима под ЛТСП‑ом). С овом поставом сваки корисник извршава Контакт на истој машини где је инсталиран и извршава се Сајрус (локални домаћин).

Да би Контакт радио са ИМАП‑ом, треба применити следеће кораке:

1. Направите ИМАП налог у Сајрусу за привидног корисника groupware (што смо већ раније урадили!)

2. Направите и подесите ИМАП налог у К‑пошти, за пријављивање као тај корисник

3. Користите к‑ресурсе да би Контактове компоненте радиле са подацима узетим из ИМАП извора

4. Укључите групверску функционалност и направите жељене потфасцикле тог ИМАП `INBOX` (ако већ нисте)

5. Уживајте у Контакту и дељеним подацима кроз Сајрусов ИМАП

Тако, пријавите се у КДЕ са првим „стварним корисничким“ налогом којем хоћете да обезбедите групверску функционалност.

Направимо ИМАП налог у К‑пошти.

Покрените Контакт и изаберите Пошта (компоненту К‑поште). Одаберите из менија Подешавање Подеси К‑пошту...Налози језичак Примање, и притисните дугме Додај.... Бићете упитани за врсту налога е‑поште, па одаберите неповезани ИМАП (не само ИМАП). Затим, у језичку Опште унесите следеће податке:

Име налога: `Канцеларија`

  Име које ће се користити за „локалну“ фасциклу која показује на овај ИМАП налог.

Пријава: `groupware`

  Корисник Сајруса којег смо изабрали као „власника“ свих канцеларијских података.

Лозинка:

  Лозинка корисника groupware.

Домаћин: `localhost`

  Сетите се да се у нашем примеру Контактов клијент извршава на истом рачунару као ИМАП сервер

Порт: `143`

  Подразумевани

Попуните Складишти ИМАП лозинку да вам следећи пут кад покренете Контакт не би била тражена. Попуните Укључи периодичну проверу поште и поставите вредност у минутима.

Запазите да смо за врсту налога попунили неповезани ИМАП. Ефекат овога је складиштење копије групверских података „локално“ на клијенту (под домаћом фасциклом), која се синхронизује сваки пут када се клијент повеже. Ово се чини врло неефикасним, пошто се подаци много пута дуплирају (тј. ако имате 10 корисника Контакта, имате 10+1 копија података), али је једини начин да ствари брзо иду, јер при сваком повезивању Контакт треба да дохвати све податке и проследи их К‑организатору и К‑адресру на тумачење. Ако користите „неповезани ИМАП“, подаци се кеширају локално и шаље се само „делта“ (тј. измене у подацима).

С друге стране, ако корисници извршавају К‑организатор на истом рачунару који извршава ИМАП сервер, коришћење ИМАП‑а чини се разумним (ово се зове „ИМАП на вези“) ради уштеде простора, јер више нема проблема с брзином преноса. На несрећу, ово не функционише јер Контакт не ажурира аутоматски фасциклу Календар у ИМАП‑у на вези, те не бивате ажурирани кад неко додаје догађаје (морате се ручно пребацити у К‑пошту и кликнути на фасциклу Календар). Додатно, на почетку кад чита фасцикле календара, можете да приметите огромно треперење и споро ажурирање података.

Сад треба да кажемо Контакту да користи ИМАП као извор података за своје различите компоненте. Из К‑менија изаберите Изврши наредбу и извршите ``kcmshell4 kresources``. Из списка изаберите Контакти, затим притисните дугме Додај..., и одаберите Адресар на ИМАП серверу преко К‑поште. Затим изаберите новодобијени ред и притисните дугме Као стандардни. Исто урадите за Календар и Белешке.

Сад треба да у К‑пошти (последично и за цео Контакт) укључимо групверску функционалност:

1. Изаберите из менија Подешавање Подеси К‑пошту...РазноГрупвер

2. Попуните Укључи функционалност ИМАП ресурса

3. Изаберите енглески под Језик за групверске фасцикле: (ово у случају да већ имате фасцикле на ИМАП серверу које је створио други програм на другом језику).

4. Сада идите на Фасцикле ресурса су у налогу: и одаберите потфасциклу пристигле фасцикле Канцеларија.

   Оставите за сада непопуњено Сакриј групверске фасцикле, тако да можемо да видимо шта се догађа. Кад све буде јасно, можете се навратити и попунити.

5. Кад притиснете У реду, добијате одзив: `К‑пошта ће сада направити потребне групверске фасцикле као потфасцикле у „пристигле“. Ако не желите ово, одустаните и ИМАП ресурс ће бити искључен`

   Ако ово не желите, притисните Не и ИМАП ресурс ће бити искључен. Притисните да (ово се дешава само први пут са првим „стварним корисником“). Одмах ћете видети да су у К‑поштином стаблу фасцикли, под Канцеларијапристигле створене наредне потфасцикле:

   - Календар
   - Контакти
   - Белешке
   - Задаци
   - Дневник

   ако сад извршите:

       # ls -l /var/spool/cyrus/mail/g/user/groupware/
       drwx------ 2 cyrus mail 144 Oct 31 16:36 Calendar
       drwx------ 2 cyrus mail 144 Oct 31 16:36 Contacts
       drwx------ 2 cyrus mail 144 Oct 31 16:36 Journal
       drwx------ 2 cyrus mail 144 Oct 31 16:36 Notes
       drwx------ 2 cyrus mail 144 Oct 31 16:36 Tasks
       -rw------- 1 cyrus mail      4 Oct 31 15:28 cyrus.cache
       -rw------- 1 cyrus mail 155 Oct 29 20:55 cyrus.header
       -rw------- 1 cyrus mail 76 Oct 31 15:28 cyrus.index

   Као што видите, фасцикла пристигле под Канцеларија не складишти се локално у Контакту под домаћом фасциклом тренутног корисника, него у ИМАП фасциклама корисника groupware.

Сада је Контакт спреман за рад и складиштење података тамо. У календарском програму — ако је К‑поштин ИМАП налог био неповезаног типа, прозор ресурс треба да приказује ставку ИМАП ресурс са три подставке које су путање до локалних домаћих фајлова. Уместо тога, Контакти не приказује подставке испод ИМАП ресурс.

Сада се можете пријавити у КДЕ под другим корисничким именом и врло слично поставити Контактов клијент за тог корисника:

1. Отворите Контакт, и у компоненти Пошта додајте ИМАП налог, наводећи под Домаћин: рачунар на ком ради Сајрусов сервер (у мом случају `192.168.1.3`).

   Не заборавите да попуните Укључи периодичну проверу поште и поставите вредност у минутима. Кад потврдите, неће вам се тражити стварање потфасцикли (пошто су нађене на ИМАП серверу), већ ћете их видети у стаблу фасцикли.

2. Активирајте групверску функционалност да бисте могли да уписујете податке на ИМАП сервер.

Будите свесни да се у „неповезаном ИМАП‑у“ подаци преносе са клијента на ИМАП сервер само кад се клијент повеже да провери нову пошту. Дакле, ако вам Контактови клијенти периодично проверавају пошту на сваких, рецимо, пет минута, у најгорем случају постојаће десетоминутно закашњење уписивања догађаја и његове појаве код осталих корисника.

## Како имати приступ само‑за‑читање

Имајте на уму да ми је потврђено да је изведба ИМАП белешки у Контакту пре верзије 1.01 покварена, па ова постава неће за њих функционисати. Но ако ипак желите да их користите, мораћете користити претходну поставу.

У претходној постави имали смо истог „привидног“ корисника, по имену groupware, којег користе сви „стварни“ корисници Контакта (нпр. pera, koja, vanja, итд.) преко ИМАП налога са његовом пријавом и лозинком. Али овако сваки стварни корисник има исте дозволе за читање и писање, пошто се свако повезује на ИМАП сервер као корисник groupware.

Да бисмо ограничили приступ извесним корисницима (обично дајући им приступ само‑за‑читање) можемо користити АЦЛ‑ове (листе контроле приступа).

Изаберите у К‑пошти потфасциклу долазног сандучета под Канцеларија, на пример Календар и кликните десним дугметом миша. Одаберите Својства, језичак Контрола приступа. Овде можете унети кориснике којима желите дати приступ овој фасцикли, и шта могу да раде.

Ради експериментисања са разменом догађаја, дајмо „све“ дозволе корисници vanja.

На нивоу Сајруса (на рачунару који извршава ИМАП сервер Сајруса, са Сајрусовим алаткама), прво треба да додамо корисника vanja, тако да буде препозната као корисница ИМАП‑а, и направимо јој ИМАП фасциклу.

Затим се пријавимо Гнуу‑Линуксу као vanja и уђемо у Контакт. Као што је претходно показано, поставићемо ИМАП налог у К‑пошти са истим подацима, осим оних корисничких (за разлику од привидног корисника groupware и његове лозинке, употребићемо vanja и њену лозинку).

У К‑поштином стаблу фасцикли, сада ћете видети овакву структуру: Канцеларија user groupware Календар и задаци. Проверите пошту (Фајл Провери пошту) и под Канцеларија добићете и фасциклу пристигле.

Сад укључите групверску функционалност К‑поште, и под Фасцикле ресурса су потфасцикле: задајте пристигле које је потфасцикла од Канцеларија.

Сад имате две гране фасцикле под Канцеларија:

1. пристигле са календаром, контактима, белешкама, задацима и дневником, који су сачувани у ИМАП фасциклама кориснице vanja на ИМАП серверу.

2. `user`, са потфасциклом `groupware` и потфасциклама којима vanja има приступ (у овом примеру, календар и задаци)

Кликните десним на user Календар и проверите да ли календарског типа (ако није, подесите да буде), а такође и да ли је user Задаци типа задатака.

Сада у календару имате два расположива ИМАП ресурса у која се може писати, па кад правите нови догађај, бићете упитани који од њих користити (или ако сте оставили расположиве и локалне ресурсе, имаћете три).

Треба да одете на доњи леви, мали прозор у календару — онај што приказује расположиве ресурсе — и испразните оне који не показују на путању `.groupware.directory` (као задњи део путање ресурса).

## Заслуге

Почетник сам, и за овај сам како‑да пружио само своје време и вољу. За знање се морам захвалити неким момцима са Фринодових канала, за њихову стручност, стрпљење и спремност да помогну.

### Посебно су ми помогли:

- За део о ИМАП‑у у Сајрусу на каналу `#cyrus`:

  - [`protagonist`] Енди Морган (Andy Morgan) morgan@orst.edu

  - [`plixed`] Оке Тим (Okke Timm) okke.timm@web.de

- За део о Контакту на каналу `#kontact`:

  - [`till`] Тил Адам (Till Adam) adam@kde.org

  - [`dfaure`] Давид Фор (David Faure) faure@kde.org

  - [`mdouhan`] Мат Доухан (Matt Douhan) matt@fruitsalad.org

Много хвала, момци!

Ах, а ту сам и ја, [`markit`] Марко Менарди (Marco Menardi) mmenaz@mail.com

## Даље за читање

### Извори

- КДЕ: http://www.kde.org

- Веб сајт Контакта: http://www.kontact.org

- Пројекат Крупвер: http://www.kroupware.org

- Вики заједница КДЕ‑а: http://wiki.kde.org

- Пројекат Вине: http://www.winehq.org

- Пројекат Сигвин‑икс: http://x.cygwin.com

- Пројекат ЛТСП: http://www.ltsp.org.