Über Owncloud mit Quellen syncen, die eigentlich nicht syncen können

Die Mög­lich­keit, Ord­ner und Datei­en über meh­re­re Gerä­te zu syn­chro­ni­sie­ren, möch­te ich nicht mehr mis­sen. Egal ob ich auf der Arbeit, zu Hau­se oder unter­wegs bin – über­all habe ich den glei­chen Datenbestand.

Wenn ich ver­schie­de­ne Diens­te im Netz nut­ze, brau­che ich meist für jeden eine eige­ne App bzw. ein eige­nes Pro­gramm. Eini­ge Diens­te schei­nen auf den ers­ten Blick gar kei­ne Syn­chro­ni­sa­ti­on zu erlau­ben (z.B. der FTP-Zugang für den Web­space). Dafür gibt es eine Lösung über Own­cloud. Own­cloud kann näm­lich schon sehr lan­ge exter­ne Daten­quel­len einbinden.

Dazu muss man sich zunächst ein­mal bei Own­cloud als Admi­nis­tra­tor ein­log­gen und unter Apps auf das +-Zei­chen klicken.

owncloud01Danach akti­viert man unter „not enab­led“ das Plug­in „Exter­nal Storage“.

owncloud02Anschlie­ßend muss man in den Admin­be­reich gehen

owncloud03… und allen Nut­zern erlau­ben, das Plug­in zu nutzen:

owncloud05Dabei sind die unter­schied­lichs­ten Pro­to­kol­le mög­lich, z.B. auch ande­re Own­cloud­sys­te­me. Man kann auch glo­ba­le Ord­ner defi­nie­ren, die allen oder nur eini­gen Nut­zern der Own­cloud-Instanz zur Ver­fü­gung ste­hen. Anschlie­ßend kann sich jeder Nut­zer unter dem Men­u­punkt „Per­so­nal“ eige­ne Daten­quel­len definieren:

owncloud06Natür­lich kann ich auch nur ein­zel­ne Ord­ner der exter­nen Quel­le synchronisieren:

owncloud07Own­cloud ver­hält sich gegen­über den exter­nen Quel­len wie ein nor­ma­ler Cli­ent, d.h. es wer­den kei­ne Daten auf dem Own­cloud­ser­ver gespei­chert – er stellt ledig­lich die Schnitt­stel­le zu ande­ren Diens­ten hier.

Der Trick ist, dass ich für alle die­se Diens­te dann nur noch eine App auf dem Tablet, dem Smart­phone oder dem Rech­ner benö­ti­ge, um mit ganz unter­schied­li­chen Quel­len Datei­en und Daten aus­zu­tau­schen, auch wenn die­se offi­zi­ell über­haupt kei­ne Syn­chro­ni­sa­ti­ons­funk­ti­on unter­stüt­zen. Die­se Diens­te erschei­nen in der Own­cloud-App ein­fach unter dem Namen, den ich für den Ord­ner ver­ge­ben habe.

Eine Syn­chro­ni­sa­ti­ons­app für IServ, mei­nen Lan­des­ser­ver, Goog­le, jeden belie­bi­gen Web­space usw. – reiz­voll – oder?

Wer sind wir?

Phil­ip­pe Wampf­ler hat auf Twit­ter ges­tern eine inter­es­san­te Fra­ge gestellt: „Sind wir, was wir im Gespräch bere­den oder was wir ins Smart­phone tip­pen, wenn unser Gegen­über zur Toi­let­te geht?“

wampfler-seinWenn man das „oder“ in der Fra­ge aus­sa­gen­lo­gisch liest, muss man mit „ja“ ant­wor­ten, so wie Moni­ka es impli­zit gemeint hat mit „bei­des“. In der Spra­che ist das Oder aber i.d.R. exklu­siv, also aus­schlie­ßend gemeint, was die Fra­ge sehr unty­pisch-dua­lis­tisch für Phil­ip­pe macht :o)…

Für mich ist eigent­lich klar, dass wir bei­des nicht sind, aber immer­hin eher das, was wir im Gespräch bereden.

Dazu ein Bild: Wenn ich mich einem Kon­zert­ge­län­de nähe­re, höre ich zunächst die tie­fen Töne, erst das Schlag­zeug, dann den Bass, Je näher ich an die Büh­ne her­an­kom­me, des­to dif­fe­ren­zier­ter wird der Klang, weil höhe­re Fre­quen­zen hin­zu­kom­men, bis ich erst das Musik­stück ein­deu­tig bestim­men kann und danach die Nuan­cen in der Liv­e­prä­sen­ta­ti­on wahr­neh­me. Die Band­brei­te der wahr­nehm­ba­ren Klän­ge wird grö­ßer, weil durch die hin­zu­kom­men­den Fre­quenz­an­tei­le schlicht mehr Infor­ma­tio­nen über­tra­gen werden.

Das ist bei sprach­li­chen Äuße­run­gen auch so und am Begriff der Pro­so­die auch gut erforscht. Kom­mu­ni­ka­ti­on, die medi­al ver­mit­telt wird, hat also grund­sätz­lich immer weni­ger Band­brei­te als direk­te Spra­che. Iro­nie ist auf Twit­ter z.B. ein ganz schwie­ri­ges The­ma und muss z.B. mar­kiert wer­den, wobei die Mar­kie­rung nicht die kom­plet­te Palet­te mensch­li­cher Äuße­rungs­mög­lich­kei­ten abdeckt. Daher ver­tre­te ich die The­se, dass medi­al ver­mit­tel­te Kom­mu­ni­ka­ti­on grund­sätz­lich kas­triert ist, sobald sie media­li­siert wird. Im Moment des Tip­pens ist sie das noch nicht.  Schon ein Video ist nicht das Glei­che wie z.B. ein Thea­ter- oder Kon­zert­be­such – sonst gäbe es kei­ne Thea­ter­auf­füh­run­gen oder Konzerte.

Im Gespräch „sind“ wir in die­ser Denk­wei­se also auch nicht zwangs­läu­fig, aber wir sind weit mehr als bei medi­al ver­mit­tel­ter Kommunikation.

Das hal­te ich für ein sehr grund­sätz­li­ches Pro­blem von sozia­len Medi­en. Vie­le Äuße­run­gen und Ent­glei­sun­gen wer­den erst dadurch mög­lich, dass es kei­nen syn­chro­nen Rück­ka­nal gibt. Wenn ich z.B. jeman­den schla­ge, gibt es viel­fäl­ti­ge phy­si­sche Reak­tio­nen ohne Zeit­ver­zö­ge­rung. Wenn ich einen Hass­post ver­fas­se, sind die Reak­tio­nen asyn­chron, die Äuße­rung steht auf lexi­ka­li­scher-seman­ti­scher Ebe­ne und kann kaum rela­ti­viert werden.

Span­nend ist, dass man ver­sucht mit VR oder Tele­prä­senz­sys­te­men mög­lichst vie­le pro­so­dische Ele­men­te nach­zu­bau­en, um immer mehr Erfah­run­gen medi­al ver­mit­teln zu können.

Ich fin­de es schon komisch, dass Men­schen auf Lauf­bän­dern lau­fen, dafür Geld bezah­len, Zeit auf­wen­den, wo es doch Parks und Wäl­der gibt und die Lauf­schu­he direkt im Schrank stehen.

Viel­leicht haben wir ein­fach Angst vor Kom­ple­xi­tät oder sind zu bequem dafür gewor­den. (Ja).

Auszüge aus Schülerarbeiten auf Socialmedia veröffentlichen

… oder auch z.B. Kor­rek­turt­weets mit Zita­ten. Ich wer­de mich jetzt unbe­liebt machen, weil ich wahr­schein­lich ein Tabu anspreche.

Ich als Elternteil …

Soll­te ich bei mei­nen Kin­dern erle­ben, dass (Teil-)Scans oder Zita­te, die ich zuord­nen kann, öffent­lich auf Social­me­dia zur Schau gestellt oder dis­ku­tiert wür­den, gin­ge ich zu aller­erst zum Vor­ge­setz­ten der betref­fen­den Lehr­kraft und – falls das nichts bringt – eine Ebe­ne wei­ter. Als Eltern­teil muss ich mich nicht an Dienst­we­ge hal­ten. Ich wür­de nicht zuerst mit der betrof­fe­nen Lehr­kraft spre­chen. Ich fin­de, dass die­ses Ver­hal­ten eini­ges aus­sagt, was sofort eine Beschwer­de bei höhe­ren Ebe­nen rechtfertigt.

Ich als Lehrkraft …

… erle­be bei Kor­rek­tu­ren viel Frust. Ich mag die­se Arbeit nicht beson­ders und muss sehr viel Ener­gie auf­wen­den, um mich bei der Stan­ge zu hal­ten. Ich kann die­sen Frust meist nicht direkt mit jeman­dem tei­len, obwohl ich ein gro­ßes Bedürf­nis danach habe. Aus einem ers­ten Impuls her­aus, nei­ge ich oft dazu, dabei Din­ge schrei­ben zu wol­len, die den häus­li­chen Bereich eigent­lich nicht ver­las­sen soll­ten, durch die ich aber u.U. viel Beach­tung erhal­te, z.B. durch Men­schen, die mir mit­tei­len, dass sie mich ver­ste­hen oder Ähn­li­ches erle­ben. Des­we­gen habe auch ich schon Tweets wie­der gelöscht. Die Selbst­kon­trol­le (oder etwas nega­ti­ver for­mu­liert: Selbst­zen­sur) klappt mitt­ler­wei­le immer besser.

Die Admi­nis­tra­ti­on …

… sagt, dass Arbei­ten von Schü­le­rin­nen und Schü­ler immer auch eine gewis­se Schöp­fungs­hö­he haben, also ein Werk gemäß dem Urhe­ber­recht dar­stel­len dürf­ten. Für eine Ver­öf­fent­li­chung – auch in Tei­len – bräuch­te ich beim Vor­lie­gen die­ser Schöp­fungs­hö­he eine Ein­wil­li­gung des Betrof­fe­nen – wenn er noch nicht voll­jäh­rig ist eben die sei­ner Erzie­hungs­be­rech­tig­ten. Wei­ter­hin unter­lie­gen Arbei­ten eines Schü­lers dem beson­de­ren Schutz des Amts­ge­heim­nis­ses – ins­be­son­de­re wenn es sich dabei um beno­tungs­re­le­van­te Tex­te oder sons­ti­ge Klau­sur­aus­zü­ge han­delt. Es wäre zu klä­ren, inwie­weit die­ses Amts­ge­heim­nis durch eine Ver­öf­fent­li­chung von Aus­zü­gen gewahrt bleibt – immer­hin ist es in man­chen Bun­des­län­dern sogar expli­zit unter­sagt, Ereig­nis­se, von denen ich im Rah­men des Amts­ge­heim­nis­ses Kennt­nis erhal­ten habe, lite­ra­risch zu verarbeiten.

Die päd­ago­gi­sche Dimension …

Darf ich Tei­le dei­ner Klau­sur mit mei­nen Kor­rek­tu­ren und einem Kom­men­tar auf Social­me­dia ver­öf­fent­li­chen?“ Ler­nen braucht in mei­nen Augen auch geschütz­te Räu­me, in denen Feh­ler fol­gen­frei blei­ben. Ich möch­te nicht die Arbeit irgend­ei­nes Schü­lers dem Gebah­ren auf Social­me­dia aus­set­zen. Für mich ist das ein gro­ber Ver­trau­ens­bruch. Die Hand­schrift eines Men­schen ist ein­zig­ar­tig und damit für mich ein ein­deu­ti­ges, per­so­nen­be­zo­ge­nes Merk­mal – auch schon in der Grund­schu­le. Zumin­dest der Betrof­fe­ne wird sei­ne Schrift wie­der­erken­nen Ich möch­te als Schü­ler nicht in die Lage kom­men, mei­ne unvoll­kom­me­nen Tex­te irgend­wo auch nur in Tei­len ver­öf­fent­licht zu sehen. Mir reicht das, was ich hier schon teil­wei­se an „gut gemein­ten“ Berich­ti­gun­gen als Zusen­dun­gen erhal­te (nicht in der Sache, aber oft genug im Tonfall).

Wann habe ich Schü­ler­ar­bei­ten veröffentlicht?

Bei­de Punk­te müs­sen für mich zutreffen:

  1. Ich habe den Schü­ler vor­her gefragt.
  2. Ich bin mir sicher, dass die Leis­tung des Schü­lers ent­we­der posi­tiv dar­ge­stellt ist oder der Kon­text einen Erkennt­nis­ge­winn für Drit­te bie­tet, den ich dem Schü­ler ver­mit­teln kann.

Hier lagern auf ver­schlüs­sel­ten Fest­plat­ten­be­rei­chen noch diver­se Schät­ze: Freie Reden mit viel Witz, außer­or­dent­li­che Tex­te, Bil­der aus dem Unter­richt, Fotos von Stand­bil­dern usw.. Alles gäbe wun­der­ba­re und lehr­rei­che Blog­ar­ti­kel ab. Für mich. Aber um mich geht es in die­sem Fal­le eher ganz viel weniger.

OpenLDAP automatisch installieren und einrichten

Ich habe heu­te ein Script geschrie­ben, wel­ches OpenLDAP auf Debi­an­sys­te­men auto­ma­tisch instal­lie­ren und auch gleich für ppo­li­cy kon­fi­gu­rie­ren kann. Wer sowas schon­mal von Hand gemacht hat, weiß um die Schwie­rig­kei­ten. Es soll­te auf den meis­ten Debi­an­de­ri­va­ten funk­tio­nie­ren (ent­wi­ckelt habe ich auf stretch), ist aber leicht anpass­bar, da ich alle Ein­zel­schrit­te in Funk­tio­nen gepackt habe.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#!/bin/bash
 
# globals
LDAPDB="mdb"
PASSWORD="test1234"
HOSTNAME=`hostname`
DOMAIN=`echo  $HOSTNAME | awk -v FS="." '{print $1}'`
TLD=`echo  $HOSTNAME | awk -v FS="." '{print $2}'`
PPOLICY_FILE="/etc/ldap/schema/ppolicy.ldif"
LOGFILE="debug.txt"
 
# basesetup()
# Installs slapd (openLDAP) unattended
# using debconf
 
basesetup() {
 
	PASS=$1
        HOST=$2
	DBTYPE=$3
 
	echo "Building LDAP-Roottree ...\n"
 
	export DEBIAN_FRONTEND=noninteractive
	echo -e " \
		slapd    slapd/internal/generated_adminpw    password   $PASS
		slapd    slapd/password2    password    $PASS
		slapd    slapd/internal/adminpw    password   $PASS
		slapd    slapd/password1    password    $PASS
		slapd	 slapd/backend: string	$DBTYPE
		slapd	 slapd/domain	string	$HOST
	" | debconf-set-selections
 
	apt-get install -y slapd ldap-utils
 
}
 
make_index() {
 
	echo "Adding index ...\n"
 
        echo -e " \
dn: olcDatabase={1}$LDAPDB,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: mail,givenName eq,subinitial
        " | ldapmodify -Y EXTERNAL -H ldapi:///
 
}
 
# configure_policy()
# installs: 	ppolicy-scheme
# 		ppolicy-module
# 		overlay
# 		ppolicycontext
# 		defaultpolicy
 
configure_policy() {
 
        echo "Setting temporary ACLs ..."
 
        echo -e " \
dn: olcDatabase={1}$LDAPDB,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" write by * none
        " | ldapmodify -Y EXTERNAL -H ldapi:///
 
	echo "Adding ppolicy-scheme ..."
 
	ldapadd -Q -Y EXTERNAL -H ldapi:/// -f $PPOLICY_FILE
 
        echo "Activating ppolicy-module ..."
 
        echo -e " \
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: ppolicy.la
        " | ldapmodify -Y EXTERNAL -H ldapi:///
 
	/etc/init.d/slapd restart
 
        echo "Generating ppolicy-context ..."
 
        echo -e " \
dn: ou=policies,dc=$DOMAIN,dc=$TLD
objectClass: organizationalUnit
objectClass: top
ou: policies
        " | ldapadd -Q -Y EXTERNAL -H ldapi:///
 
        echo "Setting default policy ..."
 
        echo -e " \
dn: cn=default,ou=policies,dc=$DOMAIN,dc=$TLD
objectClass: top
objectClass: person
objectClass: pwdPolicy
cn: default
sn: default
pwdAllowUserChange: TRUE
# this don't work though documentation says it should
# pwdAttribute: userPassword
# So we use OID for workaround
pwdAttribute: 2.5.4.35
pwdInhistory: 3
pwdLockout: TRUE
pwdLockoutDuration: 1800
pwdMaxAge: 0
pwdMaxFailure: 3
pwdMinLength: 6
pwdMustChange: TRUE
pwdSafeModify: TRUE
# comment for syntax reason (trailing TAB here leads to syntax error when importing)
        " | ldapadd -Q -Y EXTERNAL -H ldapi:///
 
        echo "Generating overlay ..."
 
        echo -e " \
dn: olcOverlay=ppolicy,olcDatabase={1}$LDAPDB,cn=config
objectClass: olcOverlayConfig
objectClass: olcPPolicyConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=default,ou=policies,dc=$DOMAIN,dc=$TLD
olcPPolicyHashCleartext: FALSE
olcPPolicyUseLockout: FALSE
olcPPolicyForwardUpdates: FALSE
# comment for syntax reason (trailing TAB here leads to syntax error when importing)
        " | ldapadd -Q -Y EXTERNAL -H ldapi:///
 
}
 
# configure_tls()
# does:
#	generating of cert-authority
#	generating of certs for slapd
#	configuring of slapd for using tls
 
configure_tls() {
 
	echo
 
}
 
# toggle_acl()
# sets ACL back to save values after install
 
toggle_acl() {
 
	echo
 
}
 
# debug_output()
# dumps to file:
#	debconf values for slapd
#	complete Root-DN
#	complete cn=config
 
debug_output() {
 
	debconf-show slapd > $LOGFILE
	slapcat >> $LOGFILE
	ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config >> $LOGFILE
 
}
 
 
# cleanldap()
# Removes all of openLDAP
 
cleanldap() {
 
	apt-get remove -y slapd ldap-utils --purge
 
}
 
# main
 
basesetup $PASSWORD $HOSTNAME $LDAPDB
make_index
configure_policy
debug_output
cleanldap

Eigent­lich muss man oben nur ein ande­res Pass­wort set­zen und am Ende das „cle­anldap“ aus­kom­men­tie­ren. Da das Gan­ze noch „Work in Pro­gress“ ist, feh­len noch eini­ge Funktionen:

  1. Kon­fi­gu­ra­ti­on für TLS
  2. Inte­gra­ti­on des freeradius-Schemas
  3. Ver­nünf­ti­ge ACLs nach Abschluss der Instal­la­ti­on setzen

Ja, ich ste­he in die­sem Jahr ziem­lich auf LDAP …

1 19 20 21 22 23 149