Różnice pomiędzy wersjami 5 i 9 (Spinanie 4 wersji)
⇤ ← Wersja 5 z 2016-10-05 01:56:10 →
Rozmiar: 7177
Edytor: wtps0n
Komentarz: * aktualizacja 2016.10.05: ustawienia w systemie, oraz po stronie OC
← Wersja 9 z 2017-02-05 15:57:00 → ⇥
Rozmiar: 16580
Edytor: wtps0n
Komentarz: + skeleton do config.php
Usunięcia zostały oznaczone w ten sposób. Dodatki zostały oznaczone w ten sposób.
Linia 12: Linia 12:
pkg install -y www/owncloud pkg install -y www/owncloud devel/php56-pcntl
Linia 103: Linia 103:
Dodatkowe ustawienia warte dopisania (domyślnie nie występują):
{{{#!highlight php numbers=off
$CONFIG = array (
# [...]
  'forcessl' => true,
  'forceSSLforSubdomains' => true,
  'ldapIgnoreNamingRules' => false,
  'ldapUserCleanupInterval' => 51,
  'custom_csp_policy' => 'default-src \'self\'; script-src \'self\' \'unsafe-inline\' \'unsafe-eval\'; style-src \'self\' \'unsafe-inline\'; frame-src *; img-src *; font-src \'self\' data:; media-src *',
  'htaccess.RewriteBase' => '/',
  'loglevel' => 1,
  'maintenance' => false,
  'theme' => '',
  'trashbin_retention_obligation' => 'auto',
  'skeletondirectory' => '/var/www/htdocs/virtuals/chmura/szkielet',
# [...]
);
}}}

Linia 177: Linia 197:
== Dodanie schematu do LDAP ==
Został opublikowany [[https://github.com/valerytschopp/owncloud-ldap-schema|schmat LDAP|target="_blank"]], który dodaje atrybut dotyczący ''quota'' dla danego użytkownika (do wykorzystania w panelu [[PhpLdapAdmin|php ldap admin]]). Po wgraniu pliku należy go dołączyć do konfiguracji [[UslugiKatalogowe|serwera LDAP]]:
{{{#!highlight ini numbers=off
include /usr/local/etc/openldap/schema/owncloud.schema
}}}

Nie można zapomnieć o przeładowaniu samego demona `slpad`:
{{{#!highlight bash numbers=off
cd /usr/local/etc/openldap/
make
}}}

= occ =
Wraz z wersją 9.0 [[https://www.owncloud.org/|ownCloud|target="_blank"]] posiada program ''controler'' do różnych czynności konfiguracyjnych.

== Dodanie zasobów zewnętrznych ==
Możliwe jest dodanie montowanie zasobów zewnętrznych. W tym celu uruchamiamy polecenie:
{{{#!highlight bash numbers=off
cd /usr/local/www/owncloud
su -m www -c "php occ app:enable files_external"
}}}

== Dodanie konfiguracji LDAP ==
{{{#!highlight bash numbers=off
cd /usr/local/www/owncloud

# dodanie aplikacji dla użytkowników w LDAP
su -m www -c "php occ app:enable user_ldap"

# utworzenie pustej konfiguracji
su -m www -c "php occ ldap:create-empty-config"
}}}

Linia 178: Linia 232:
Każdy z użytkowników powinien mieć zdefiniowany adres email - będzie pomocny do codziennej pracy z ownCloud.

'''@@@@@@@@@@@@@@@@@@@@@@@@@@@ TODO @@@@@@@@@@@@@@@@@@@@@@@@@@@'''
Domyślnie użytkownicy są lokalni (zdefiniowani w bazie danych). Użytkownicy są przypiswaniu do grup (również lokalne). Dodatkowo użytkownik może być administratorem dla grupy swojej i/lub też innej.

Po zalogowaniu każdy z użytkowników może ustawić swój profil: zdjęcie, adres email (to ważne, upraszcza pracę z [[https://www.owncloud.org/|ownCloud|target="_blank"]]).

== Integracja z LDAP ==

Możliwe jest skonfigurowanie użytkowników w bazie [[http://www.openldap.org|OpenLDAP|target="_blank"]]. W tym celu należy aktywować ''aplikację'' '''user_ldap''' (patrz poprzednia sekcja).

== Utworzenie dedykowanego użytkownika LDAP ==
Warto w bazie LDAP utworzyć specjalne konto na potrzeby [[https://www.owncloud.org/|ownCloud|target="_blank"]]. Być może będzie konieczność nadania jakiś specjalnych uprawnień dla tego konta. Dane tego konta należy wpisać do konfiguracji LDAP w panelu administratora (WebUI) lub za pomocą narzędzia `occ`.

== Sprawdzenie/modyfikowanie konfiguracji LDAP ==

Za pomocą `occ` jest możliwe sprawdzenie ustawień dotyczących LDAP:
{{{#!highlight bash numbers=off
cd /usr/local/www/owncloud
su -m www -c "php occ ldap:show-config"
}}}

A także ich modyfikowanie:
{{{#!highlight bash numbers=off
cd /usr/local/www/owncloud
su -m www -c 'php occ ldap:show-config "" ldapEmailAttribute mail'
}}}
/!\ Pierwszym parametrem jest ''configID''. Niemniej pierwsze utworzone za pomocą `occ ldap:create-empty-config` posiada... __puste__ ID (nazwę). Dlatego jako pierwszy parametr podany jest pusty ciąg znaków.

=== Przykładowa konfiguracja ===
{{{
+-------------------------------+---------------------------------------------+
| Configuration | |
+-------------------------------+---------------------------------------------+
| hasMemberOfFilterSupport | |
| hasPagedResultSupport | |
| homeFolderNamingRule | |
| lastJpegPhotoLookup | 0 |
| ldapAgentName | uid=ocadmin,ou=admins,dc=firma,dc=local |
| ldapAgentPassword | *** |
| ldapAttributesForGroupSearch | |
| ldapAttributesForUserSearch | |
| ldapBackupHost | |
| ldapBackupPort | |
| ldapBase | ou=owncloud,dc=firma,dc=local |
| ldapBaseGroups | ou=owncloud,dc=firma,dc=local |
| ldapBaseUsers | ou=owncloud,dc=firma,dc=local |
| ldapCacheTTL | 600 |
| ldapConfigurationActive | 1 |
| ldapDynamicGroupMemberURL | |
| ldapEmailAttribute | mail |
| ldapExperiencedAdmin | 0 |
| ldapExpertUUIDGroupAttr | |
| ldapExpertUUIDUserAttr | |
| ldapExpertUsernameAttr | |
| ldapGroupDisplayName | cn |
| ldapGroupFilter | (&(|(objectclass=posixGroup))) |
| ldapGroupFilterGroups | |
| ldapGroupFilterMode | 0 |
| ldapGroupFilterObjectclass | posixGroup |
| ldapGroupMemberAssocAttr | memberUid |
| ldapHost | 192.168.1.453 |
| ldapIgnoreNamingRules | |
| ldapLoginFilter | (&(|(objectclass=inetOrgPerson))(uid=%uid)) |
| ldapLoginFilterAttributes | |
| ldapLoginFilterEmail | 0 |
| ldapLoginFilterMode | 0 |
| ldapLoginFilterUsername | 1 |
| ldapNestedGroups | 0 |
| ldapOverrideMainServer | |
| ldapPagingSize | 500 |
| ldapPort | 389 |
| ldapQuotaAttribute | ownCloudQuota |
| ldapQuotaDefault | 250GB |
| ldapTLS | 0 |
| ldapUserDisplayName | displayName |
| ldapUserDisplayName2 | mail |
| ldapUserFilter | (|(objectclass=inetOrgPerson)) |
| ldapUserFilterGroups | |
| ldapUserFilterMode | 1 |
| ldapUserFilterObjectclass | inetOrgPerson |
| ldapUuidGroupAttribute | auto |
| ldapUuidUserAttribute | auto |
| turnOffCertCheck | 0 |
| useMemberOfToDetectMembership | 1 |
+-------------------------------+---------------------------------------------+
}}}

== Dodanie grup do bazy OpenLDAP ==

Jeżeli dodawanie użytkowników do bazy [[http://www.openldap.org|OpenLDAP|target="_blank"]] będzie wykonywane za pomocą panelu [[PhpLdapAdmin|php ldap admin]], to należy najpierw dodać potrzebne grupy użytkowników. W tym celu należy założyć obiekty typu '''posixGroup'''

== Dodanie użytkowników do bazy OpenLDAP ==
Po wykonaniu konfiguracji można zacząć dodawać użytkowników do bazy [[http://www.openldap.org|OpenLDAP|target="_blank"]] z wykorzystaniem [[PhpLdapAdmin|php ldap admin]]. Przykładowy użytkownik wygląda następująco:
{{{#!highlight text numbers=off
dn: cn=Stryjek Krzysztof,ou=users,ou=owncloud,dc=firma,dc=local
cn: Stryjek Krzysztof
displayname: Stryjek Krzysztof
gidnumber: 500
givenname: Krzysztof
homedirectory: /home/users/kstryjek
jpegphoto:: /9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoH
 BwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQk
 [...]
mail: wtps0n@bsdserwis.com
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
objectclass: ownCloud
owncloudquota: 500GB
sn: Stryjek
uid: kstryjek
uidnumber: 1000
userpassword: {SSHA}5v4JdCbTXT5wpJHB0hCta5jIHlToNl2V
}}}
Linia 185: Linia 348:
 1. [[https://doc.owncloud.org/server/9.1/admin_manual/configuration_user/user_auth_ldap.html|Użytkownicy w LDAP|target="_blank"]]
 1. [[https://github.com/valerytschopp/owncloud-ldap-schema|ownCloud LDAP schema|target="_blank"]]


Instalacja oraz konfiguracja ownCloud

Poniżej przepis, jak zainstalować oraz skonfigurować ownCloud na serwerze.

ports/pkg

Z wykorzystaniem własnego repozytroium pakietów wykonujemy instalację:

pkg install -y www/owncloud devel/php56-pcntl

Konfiguracja apache

Konfiguracja została dodana do repozytorium skryptów, ale zapisana ku pamięci:

# --- definicja katalog/ow ze stronkami -----------------------------
#
<Directory /usr/local/www/owncloud>
    AllowOverride All
    Require all granted
    <IfModule mod_expires.c>
        Header set cache-control: public
        ExpiresActive on
        ExpiresDefault "access plus 1 month"
        ExpiresByType text/html             "access plus 1 hour"
        ExpiresByType application/rss+xml   "access plus 1 hour"
        ExpiresByType image/png             "access plus 3 month"
        ExpiresByType image/jpg             "access plus 3 month"
        ExpiresByType image/jpeg            "access plus 3 month"
        ExpiresByType video/ogg             "access plus 3 month"
        ExpiresByType audio/ogg             "access plus 3 month"
        ExpiresByType video/mp4             "access plus 3 month"
        ExpiresByType image/x-icon          "access plus 1 year"
        ExpiresByType font/ttf              "access plus 1 year"
        ExpiresByType image/svg+xml         "access plus 1 year"
    </IfModule>
    <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
    </IfModule>
</Directory>

# -------------------------------------------------------------------
#
# Konfiguracja dla wybranego VirtualHost lub konfiguracji globalnej
#
# -------------------------------------------------------------------
#
      Alias /owncloud /usr/local/www/owncloud
      AcceptPathInfo On

Zgodnie z dokumentacją ownCloud trzeba dodać następujące konfiguracje do apache:

      <IfModule mod_headers.c>
        Header merge X-Frame-Options SAMEORIGIN
        Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
        Header merge X-Content-Type-Options nosniff
        Header merge X-XSS-Protection "1; mode=block"
        Header merge X-Robots-Tag none
      </IfModule>

Utworzenie bazy danych

createuser -U pgsql -DEPS chmurek
createdb -U pgsql -O chmurek -E utf-8 cdnxcloud

Sprawdzenie uprawnień do config.php

Jeżeli po zalogowaniu wystąpi błąd "zapisu do kaalogu config/", to trzeba sprawdzić uprawnienia:

chown -R www:www /usr/local/www/owncloud/config/

Konfiguracja w panelu www

Po zalogowaniu do panelu należy wpisać konfigurację:

  1. login administratora
  2. hasło administratora
  3. login do bazy danych
  4. hasło do bazy danych
  5. nazwa bazy danych
  6. serwer bazy danych (domyślnie localhost, ale w przypadku jaili trzeba odpowiednio poprawić

Integralność danych

W trakcie instalacji owncloud modyfikowany jest plik core/Controller/LoginController.php i nie zgadza się suma kontrolna. Nie można zmieniać core/signature.json, ponieważ nie będzie się zgadzać i kontrola w ogóle nie przejdzie :-(

Modyfikacje w config.php

W przypadku udostępniania ownCloud pod różnymi adresami, należy w pliku konfiguracyjnym zmodyfikować zmienną trusted_domains:

$CONFIG = array (
# [...]
  'trusted_domains' =>
  array (
    0 => 'cloud.bsdserwis.com',
    1 => 'cloud.codenix.pro',
    2 => 'cloud.codenix.pl',
  ),
# [...]
);

Dodatkowe ustawienia warte dopisania (domyślnie nie występują):

$CONFIG = array (
# [...]
  'forcessl' => true,
  'forceSSLforSubdomains' => true,
  'ldapIgnoreNamingRules' => false,
  'ldapUserCleanupInterval' => 51,
  'custom_csp_policy' => 'default-src \'self\'; script-src \'self\' \'unsafe-inline\' \'unsafe-eval\'; style-src \'self\' \'unsafe-inline\'; frame-src *; img-src *; font-src \'self\' data:; media-src *',
  'htaccess.RewriteBase' => '/',
  'loglevel' => 1,
  'maintenance' => false,
  'theme' => '',
  'trashbin_retention_obligation' => 'auto',
  'skeletondirectory' => '/var/www/htdocs/virtuals/chmura/szkielet',
# [...]
);

crontab

W ustawieniach panelu administracyjnego należy ustawić wywoływanie zadań cron z crond. W tym celu należy utworzyć crontaba dla użytkownika www:

# --- definicje zmiennych lokalnych ----------------------------------------
#
NULL=/dev/null
LOC_PREFIX=/usr/local
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
HOME=/var/log
LOC_PYTHON=/usr/local/bin/python2
DOW="`/bin/date +%w-%a`"

#
#minute hour    mday    month   wday    command
#
*/15    *       *       *       *       ${LOC_PREFIX}/bin/php ${LOC_PREFIX}/www/owncloud/cron.php

Powiadomienia mailowe

W celu wysyłania powiadomień mailowych należy wpisać dane w panelu administratora. Zostaną one zapisane w pliku config.php jako:

$CONFIG = array (
# [...]
  'mail_smtpmode' => 'smtp',
  'mail_smtpauthtype' => 'LOGIN',
  'mail_smtpauth' => 1,
  'mail_from_address' => 'chmura',
  'mail_domain' => 'bsdserwis.com',
  'mail_smtphost' => 'localhost.bsdserwis.com',
  'mail_smtpport' => '587',
  'mail_smtpname' => '__user__',
  'mail_smtppassword' => '__haslo__',
);

/!\ Należy przypisać adres nadawcy do istniejącej skrzynki mailowej.

Ustawienie w php.ini

W celu umożliwienia wysyłania większych plików (głównie upload) można ustawić następujące wartości w /usr/local/etc/php.ini:

# globalnie może być mniejszy, poprzez plik .htaccess ownCloud i tak ustawia poniższy limit
memory_limit = 513M

sys_temp_dir = /var/tmp/apache

upload_tmp_dir = /var/tmp/apache
upload_max_filesize = 5192M
max_file_uploads = 20

# post_max_size >= $upload_max_filesize
post_max_size = 5220M

/usr/local/www/owncloud/.htaccess

W pliku .htaccess są wartości pomniejszone do 513M. Można zatem poprawić ustawienia i dostosować do własnych potrzeb:

--- .htaccess   2016-07-20 11:15:02.000000000 +0200
+++ .htaccess.new       2016-10-05 03:53:52.771228000 +0200
@@ -24,10 +24,11 @@
   <FilesMatch "\.(css|js)$">
     Header set Cache-Control "max-age=7200, public"
   </FilesMatch>
+  Header set X-Frame-Options "SAMEORIGIN"
 </IfModule>
 <IfModule mod_php5.c>
-  php_value upload_max_filesize 513M
-  php_value post_max_size 513M
+  php_value upload_max_filesize 2050M
+  php_value post_max_size 2075M
   php_value memory_limit 512M
   php_value mbstring.func_overload 0
   php_value always_populate_raw_post_data -1

Dodanie schematu do LDAP

Został opublikowany schmat LDAP, który dodaje atrybut dotyczący quota dla danego użytkownika (do wykorzystania w panelu php ldap admin). Po wgraniu pliku należy go dołączyć do konfiguracji serwera LDAP:

include         /usr/local/etc/openldap/schema/owncloud.schema

Nie można zapomnieć o przeładowaniu samego demona slpad:

cd /usr/local/etc/openldap/
make

occ

Wraz z wersją 9.0 ownCloud posiada program controler do różnych czynności konfiguracyjnych.

Dodanie zasobów zewnętrznych

Możliwe jest dodanie montowanie zasobów zewnętrznych. W tym celu uruchamiamy polecenie:

cd /usr/local/www/owncloud
su -m www -c "php occ app:enable files_external"

Dodanie konfiguracji LDAP

cd /usr/local/www/owncloud

# dodanie aplikacji dla użytkowników w LDAP
su -m www -c "php occ app:enable user_ldap"

# utworzenie pustej konfiguracji
su -m www -c "php occ ldap:create-empty-config"

Użytkownicy

Domyślnie użytkownicy są lokalni (zdefiniowani w bazie danych). Użytkownicy są przypiswaniu do grup (również lokalne). Dodatkowo użytkownik może być administratorem dla grupy swojej i/lub też innej.

Po zalogowaniu każdy z użytkowników może ustawić swój profil: zdjęcie, adres email (to ważne, upraszcza pracę z ownCloud).

Integracja z LDAP

Możliwe jest skonfigurowanie użytkowników w bazie OpenLDAP. W tym celu należy aktywować aplikację user_ldap (patrz poprzednia sekcja).

Utworzenie dedykowanego użytkownika LDAP

Warto w bazie LDAP utworzyć specjalne konto na potrzeby ownCloud. Być może będzie konieczność nadania jakiś specjalnych uprawnień dla tego konta. Dane tego konta należy wpisać do konfiguracji LDAP w panelu administratora (WebUI) lub za pomocą narzędzia occ.

Sprawdzenie/modyfikowanie konfiguracji LDAP

Za pomocą occ jest możliwe sprawdzenie ustawień dotyczących LDAP:

cd /usr/local/www/owncloud
su -m www -c "php occ ldap:show-config"

A także ich modyfikowanie:

cd /usr/local/www/owncloud
su -m www -c 'php occ ldap:show-config "" ldapEmailAttribute mail'

/!\ Pierwszym parametrem jest configID. Niemniej pierwsze utworzone za pomocą occ ldap:create-empty-config posiada... puste ID (nazwę). Dlatego jako pierwszy parametr podany jest pusty ciąg znaków.

Przykładowa konfiguracja

+-------------------------------+---------------------------------------------+
| Configuration                 |                                             |
+-------------------------------+---------------------------------------------+
| hasMemberOfFilterSupport      |                                             |
| hasPagedResultSupport         |                                             |
| homeFolderNamingRule          |                                             |
| lastJpegPhotoLookup           | 0                                           |
| ldapAgentName                 | uid=ocadmin,ou=admins,dc=firma,dc=local     |
| ldapAgentPassword             | ***                                         |
| ldapAttributesForGroupSearch  |                                             |
| ldapAttributesForUserSearch   |                                             |
| ldapBackupHost                |                                             |
| ldapBackupPort                |                                             |
| ldapBase                      | ou=owncloud,dc=firma,dc=local               |
| ldapBaseGroups                | ou=owncloud,dc=firma,dc=local               |
| ldapBaseUsers                 | ou=owncloud,dc=firma,dc=local               |
| ldapCacheTTL                  | 600                                         |
| ldapConfigurationActive       | 1                                           |
| ldapDynamicGroupMemberURL     |                                             |
| ldapEmailAttribute            | mail                                        |
| ldapExperiencedAdmin          | 0                                           |
| ldapExpertUUIDGroupAttr       |                                             |
| ldapExpertUUIDUserAttr        |                                             |
| ldapExpertUsernameAttr        |                                             |
| ldapGroupDisplayName          | cn                                          |
| ldapGroupFilter               | (&(|(objectclass=posixGroup)))              |
| ldapGroupFilterGroups         |                                             |
| ldapGroupFilterMode           | 0                                           |
| ldapGroupFilterObjectclass    | posixGroup                                  |
| ldapGroupMemberAssocAttr      | memberUid                                   |
| ldapHost                      | 192.168.1.453                               |
| ldapIgnoreNamingRules         |                                             |
| ldapLoginFilter               | (&(|(objectclass=inetOrgPerson))(uid=%uid)) |
| ldapLoginFilterAttributes     |                                             |
| ldapLoginFilterEmail          | 0                                           |
| ldapLoginFilterMode           | 0                                           |
| ldapLoginFilterUsername       | 1                                           |
| ldapNestedGroups              | 0                                           |
| ldapOverrideMainServer        |                                             |
| ldapPagingSize                | 500                                         |
| ldapPort                      | 389                                         |
| ldapQuotaAttribute            | ownCloudQuota                               |
| ldapQuotaDefault              | 250GB                                       |
| ldapTLS                       | 0                                           |
| ldapUserDisplayName           | displayName                                 |
| ldapUserDisplayName2          | mail                                        |
| ldapUserFilter                | (|(objectclass=inetOrgPerson))              |
| ldapUserFilterGroups          |                                             |
| ldapUserFilterMode            | 1                                           |
| ldapUserFilterObjectclass     | inetOrgPerson                               |
| ldapUuidGroupAttribute        | auto                                        |
| ldapUuidUserAttribute         | auto                                        |
| turnOffCertCheck              | 0                                           |
| useMemberOfToDetectMembership | 1                                           |
+-------------------------------+---------------------------------------------+

Dodanie grup do bazy OpenLDAP

Jeżeli dodawanie użytkowników do bazy OpenLDAP będzie wykonywane za pomocą panelu php ldap admin, to należy najpierw dodać potrzebne grupy użytkowników. W tym celu należy założyć obiekty typu posixGroup

Dodanie użytkowników do bazy OpenLDAP

Po wykonaniu konfiguracji można zacząć dodawać użytkowników do bazy OpenLDAP z wykorzystaniem php ldap admin. Przykładowy użytkownik wygląda następująco:

dn: cn=Stryjek Krzysztof,ou=users,ou=owncloud,dc=firma,dc=local
cn: Stryjek Krzysztof
displayname: Stryjek Krzysztof
gidnumber: 500
givenname: Krzysztof
homedirectory: /home/users/kstryjek
jpegphoto:: /9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoH
 BwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQk
 [...]
mail: wtps0n@bsdserwis.com
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
objectclass: ownCloud
owncloudquota: 500GB
sn: Stryjek
uid: kstryjek
uidnumber: 1000
userpassword: {SSHA}5v4JdCbTXT5wpJHB0hCta5jIHlToNl2V

Źródła w sieci internet

  1. strona domowa ownCloud

  2. dokumentacja ownCloud

  3. Użytkownicy w LDAP

  4. ownCloud LDAP schema


{i}  (c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.

OwnCloud (ostatnio edytowane 2019-08-21 13:42:57 przez wtps0n)