diff options
author | M.Gergo | 2018-03-18 01:23:36 +0100 |
---|---|---|
committer | M.Gergo | 2018-03-18 01:23:36 +0100 |
commit | 6b335352b719ae8871701df637cf5725692198b4 (patch) | |
tree | 21b01d3456d2d428b18102d4b118f050c0fbd926 /external/nextcloud/README | |
parent | 925131711b22e1b7a50959921527d7692706cd88 (diff) | |
download | mayor-6b335352b719ae8871701df637cf5725692198b4.tar.gz mayor-6b335352b719ae8871701df637cf5725692198b4.zip |
Nextcloud - Mayor script
Ezzen script segítségével a Mayor-naplóból tudunk felhasználókat és csoportokat importálni a Nextcloud felhőbe,
létrehozva ezzel a saját, iskoali felhőszolgáltatásunkat.
Ez a script lényegében annyit csinál, hogy a mysql segítségével lekérdezi a mayorból a diák-tankör-tanár összerendezéseket,
és a tankörök nevei alapján létrehoz csoportokat, majd belépteti ezen csoportokba a diákokat, és tanárokat,
megspórolva ezzel a kézi (egyesével történő) feltöltést, és egy csomó időt az adminisztrátornak.
Támogatja a külön, illetve az egy, közös szerverre történő telepítését a mayornak és a nextcloud-nak. *(lásd: Szeparációs lehetőségek rész.)
Egyelőre még csak a Nextcloud 13.x -mal tesztelt.
FONTOS!
Legalább "php7.0" és "Apache 2.4" kell hozzá!
Beállítása az alábbiak szerint: (egy lehetséges elrendezés)
-(I.) Először telepítsünk föl egy Nextcloud(13+) szervert egy Debian 9+ szerverre,
szükség van e-mail küldés (smtp) szolgáltatásra is. (ez lehet külső, pl google)
Bővebb leírást a telepítésről a
https://docs.nextcloud.com/server/13/admin_manual/installation/index.html oldalon találunk.
-(II.) Helyezzük el a "mayor-nextcloud.php"-t biztos, védett helyre,a nextcloud szerveren, akár a /etc/ mappába, akár a /root könyvtárba,
ezt később "root"-ként kell majd futtatnunk, és mysql jelszó is (lehet/) van benne,
ezért ennek megfelelően állítsuk be a tulajdonost, és vegyük el a jogosultságokat. (chown root; chmod 600)
-(III.) A fajl elején találhatóak a konfigurációs adatok, ezeket a következőképpen módosíthatjuk:
$db['host'] = "localhost"; //Ez a nextcloud alatt futó mysql elérhetősége.
// (Csak localhost lehet, a scriptet a nextcloud-szerveren kell futtatnunk.)
$db['port'] = "3306"; //nextcloud-mysql port
$db['user'] = "root"; //nextcloud-mysql felhasználónév
// HA nem a root-ot használjuk, akkor, a használt felhasználónak írási-olvasási-törlési
// (insert,select,update,delete) joggal kell rendelkeznie a nextcloud adatbázis "..groups" tábláján,
// valamit saját kezűleg kell lérehozni a script saját nyilvántartó adatbázisát, és a fenti jogokat beállítani rá.
// Ha a Debian-on alapértelmezett root-ot használjuk, akkor mindez automatikusan történik.
$db['pass'] = ""; //A nextcloud-mysql jelszó (pl a "root" felhasználónévhez tartozó)
// érdemes a debian 9.x-en, a root-hoz alapértelmezett "unix_socket" bejelentkezési módot
// használnunk, ez biztonságosabb, mert nem jön létre "olvasható" jelszó.
$db['nxt_dbname'] = "nextcloud"; //A Nextcloud által használt adatbázis neve.
$db['nxt_prefix'] = "oc_"; //A Nextcloud által használt adatbázisban a táblák prefix-je. (ha van)
$db['m2n_db'] = "mayor_to_nextcloud"; //A nyilvántartó adatbázis neve.
// Ennek az adatbázisnak a nextcloud-mysql szerveren kell lennie!
//
// Ebben az adatbázisban könyveli el a script által létrehozott felhasználókat, azért,
// hogy így meg tudja különböztetni, a saját maga által létrehozottakat, az Adminisztrátor
// által, külön, kézzel létrehozott felhasználóktól.
$db['m2n_prefix'] = "m2n_"; //A nyilvántartó adatbázisban használt prefix, ha van. (ha nincs, akkor "üres string"-re kell állítani)
//$db['mayor_host'] = ""; //Akkor használatos, ha a mayor alatti mysql szerver egy másik szerveren van.
//$db['mayor_port'] = ""; // ekkor ki kell venni kommentből, és ki kell tölteni a mayor-mysql serverre érvényes adatokkal.
//$db['mayor_user'] = "";
//$db['mayor_pass'] = ""; //A kiválasztott felhaználónak olvasnia (GRANT SELECT) kell tudnia a mayor-mysql serveren a(z):
// intezmeny_xxx, mayor_parent, naplo_xxx_yyyy adatbázisokból.
//Ha a mayor-mysql sezvere fizikailag (vagy virtuálisan) másik szerveren van, akkor érdemes egy "ssh-tunnel"-lel
// áthozni a portját a nextcloud-serverre. (ez a legbiztonságossabb)
$m2n['isk_rovidnev'] = "rovid"; //A mayor-ban használt "iskola rövidneve" megnevezés.
$m2n['min_evfolyam'] = 10; //A minimális évfolyam, amelytől fölfelé engedélyezzük a felhő használatát a diákoknak.
$m2n['csoport_prefix'] = "(tk) "; //A Nextcloud-ban ezzel az előtaggal jelennek majd meg mayor-ból importált csoportok, a jobb átláthatóság érdekében.
$m2n['default_email'] = "rendszergazda@iskola.hu"; //Ha a mayor intezmeny_xxx.diak, vagy az intezmeny_xxx.tanar táblákban nincs kitöltve az
// e-mail, akkor ezt használja alapértelmezetten.
// (ide megy a jelszó-emlékeztető, amíg a felhasználó birtokba nem veszi a fiókját)
$m2n['default_passw'] = "EHYmGktzrdfS7wxJR6DFqxjJ"; //Az induló jelszó a Nextcloud-ban a felhasználóknak. (érdemes erőset megadni, a botnet-ek miatt)
$m2n['default_quota'] = "10GB"; //Az induló fájl-kvóta a Nextcloud-ban.
$m2n['default_lang'] = "hu"; //Az alapértelmezett nyelv (később minden felhasználó átállíthatja magának)
$m2n['mindenki_csop'] = "naplós_felhasználók"; //A Nextcloud "mindenki" csoportja
// ebbe a "mindenki" csoportba minden, a script által létrehozott felhasználó bekerül.
$occ_path = "/var/www/nextcloud/"; //A Nextcloud-server fájljainak elérési útja. (DocumentRoot)
// Erre szükség van a nextcloud "occ" parancsának eléréséhez.
$occ_user = "www-data"; //A Nextcloud-servert futtató (Apache) felhasználónév
FONTOS!!
A Nextcloud szerver "occ" parancsa elérhető kell legyen a script számára!
Az "occ" parancs működését pl. az: (>>> sudo -u www-data php /var/www/nextcloud/occ ) kiadásával ellenőrizzük!
További Információk:
Lehetőség van egy-egy felhasználó letiltására, ezt a nyilvántartó adatbázisban tehetjük meg, a "register" tábla,
az adott felhasználónévhez tartozó "status" mezőjének "forbidden"-re állításával.
Ekkor a script nem fog foglalkozni, az adott felhasználóval a továbbiakban.
Esetleg érdemes lehet a scriptet betenni a "cron"-ba (éjszakára), így naponta lefut, és követi napló változásait.
A mayor által ajánlott "Vezetéknév.Keresztnév" típusú felhasználónév formátum, bár hasznos, mert könnyen megjegyezhető,
viszont (sajnos) egyáltalán nem POSIX kompatibilis (amely csak az angol ABC betűit +pár kiegészítő karaktert engedélyez)
így a legtöbb rendszerrel nem hozható összhangba, ezért szükség van az ékezetes karakterek lecserélésére.
A karakterek cseréje az alábbi módon történik:
á --> aa Á --> Aa
ä --> ae Ä --> Aae
é --> ee É --> Ee Például:
í --> ii Í --> Ii Vezetéknév.Keresztnév --> Vezeteekneev.Keresztneev
ó --> oo Ó --> Oo Bőrönd.Ödön --> Booeroend.Oedoen
ö --> oe Ö --> Oe
ő --> ooe Ő --> Ooe
ú --> uu Ú --> Uu
ü --> ue Ü --> Ue
ű --> uue Ű --> Uue
Ezeket a karakter cseréket maga a script végzi, futás közben, a mayor felhasználónevekből,
a létrejövő Nextcloud felhasználónév már a lecserélt változat lesz.
A mayor-nextcloud script működése néhány mondatban:
Első lépésben lekérdezi a feltételeknek megfelelő tanköröket a mayorból, (tankör-osztály évfolyama, tankör aktív-e a dátumok apaján)
majd ez alapján ellenőrzi, hogy a Nextcloud-ban már szerepelnek-e ezen tankörneveknek megfelelő csoportok.
Ha új tankör van a mayorban, akkor azt a Nextcloud-ban is létrehozza, ha egy tankört töröltek a mayorból, akkor azt a csoportot Nextcloud-ból is törli.
Fontos!
A csoport prefix-szel, például: "(tk) "-val kezdődő csoportokat magáénak tekinti, és ha nem találja a mayorban, akkor automatikusan töröli!
Második lépésben lekérdezi a felhasználókat a mayorból, (jogviszony státusz, évfolyam, kapcsolódó tankörök)
csak azokat a tanárokat, illetve diákokat veszi figyelembe, akinek a státusza nem "jogviszonya lezárva", vagy nem "felvételt nyert".
Ha az illető még nem rendelkezik felhasználónévvel a Nextcloud-ban, akkor létrehozza,
- ha a mayorban, az "intezmeny_xxx.diak", illetve az "intezmeny_xxx.tanar" táblákon van beállított e-mail címe, akkor azt használja, ha nincs,
akkor az alapértelmezettet állítja be a Nextcloud-ba, valamint ekkor állítódik be az alapértelmezett qvóta, és a felhasználó valódi neve is.
(ezeket később Rendszergazdai, és Felhasználói oldalról változtatni lehet, értelemszerűen)
Ha az illető már rendelkezik felhasználónévvel, de az le volt tiltva, akkor újra engedélyezi.
Ezután egyezteti a tankör-csoport összerendeléseket, ha az illető új tankörbe került be, akkor belépteti a megfelelő csportba,
ha kikerült egy tankörből, akkor a csoportból is kilépteti.
Végül ellenőrzi a kiléptetndő felhasználókat.
Ha velekinek a státusza a mayorban "jogviszonya lezárva"-ra változott, vagy a felhasználót a mayorból törölték, akkor
- ha még nem lépett be soha a Nextcloudba, akkor a felhasználót fizikailag törli.
- ha már használta a fiókját, akkor csak letiltja, azért, hogy a fájljai ne vesszenek el automatikusan.
(Ez, utóbbi esetben a Rendszergazdának kell külön elvégezni a törlést.)
Diffstat (limited to 'external/nextcloud/README')
-rw-r--r-- | external/nextcloud/README | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/external/nextcloud/README b/external/nextcloud/README new file mode 100644 index 00000000..5eee1962 --- /dev/null +++ b/external/nextcloud/README @@ -0,0 +1,183 @@ + +Nextcloud(13) - Mayor script + +Ezzen script segítségével a Mayor-naplóból tudunk felhasználókat és csoportokat importálni a Nextcloud felhőbe, +létrehozva ezzel a saját, iskoali felhőszolgáltatásunkat. + +Ez a script lényegében annyit csinál, hogy a mysql segítségével lekérdezi a mayorból a diák-tankör-tanár összerendezéseket, +és a tankörök nevei alapján létrehoz csoportokat, majd belépteti ezen csoportokba a diákokat, és tanárokat, +megspórolva ezzel a kézi (egyesével történő) feltöltést, és egy csomó időt az adminisztrátornak. + +Támogatja a külön, illetve az egy, közös szerverre történő telepítését a mayornak és a nextcloud-nak. *(lásd: Szeparációs lehetőségek rész.) +Egyelőre még csak a Nextcloud 13.x -mal tesztelt. + +FONTOS! + Legalább "php7.0" és "Apache 2.4" kell hozzá! + + + +Beállítása az alábbiak szerint: (egy lehetséges elrendezés) + +-(I.) Először telepítsünk föl egy Nextcloud(13+) szervert egy Debian 9+ szerverre, + szükség van e-mail küldés (smtp) szolgáltatásra is. (ez lehet külső, pl google) + Bővebb leírást a telepítésről a + https://docs.nextcloud.com/server/13/admin_manual/installation/index.html oldalon találunk. + +-(II.) Helyezzük el a "mayor-nextcloud.php"-t biztos, védett helyre,a nextcloud szerveren, akár a /etc/ mappába, akár a /root könyvtárba, + ezt később "root"-ként kell majd futtatnunk, és mysql jelszó is (lehet/) van benne, + ezért ennek megfelelően állítsuk be a tulajdonost, és vegyük el a jogosultságokat. (chown root; chmod 600) + + + +-(III.) A fajl elején találhatóak a konfigurációs adatok, ezeket a következőképpen módosíthatjuk: + + + $db['host'] = "localhost"; //Ez a nextcloud alatt futó mysql elérhetősége. + // (Csak localhost lehet, a scriptet a nextcloud-szerveren kell futtatnunk.) + + $db['port'] = "3306"; //nextcloud-mysql port + + $db['user'] = "root"; //nextcloud-mysql felhasználónév + // HA nem a root-ot használjuk, akkor, a használt felhasználónak írási-olvasási-törlési + // (insert,select,update,delete) joggal kell rendelkeznie a nextcloud adatbázis "..groups" tábláján, + // valamit saját kezűleg kell lérehozni a script saját nyilvántartó adatbázisát, és a fenti jogokat beállítani rá. + // Ha a Debian-on alapértelmezett root-ot használjuk, akkor mindez automatikusan történik. + + $db['pass'] = ""; //A nextcloud-mysql jelszó (pl a "root" felhasználónévhez tartozó) + // érdemes a debian 9.x-en, a root-hoz alapértelmezett "unix_socket" bejelentkezési módot + // használnunk, ez biztonságosabb, mert nem jön létre "olvasható" jelszó. + + + + $db['nxt_dbname'] = "nextcloud"; //A Nextcloud által használt adatbázis neve. + $db['nxt_prefix'] = "oc_"; //A Nextcloud által használt adatbázisban a táblák prefix-je. (ha van) + + + $db['m2n_db'] = "mayor_to_nextcloud"; //A nyilvántartó adatbázis neve. + // Ennek az adatbázisnak a nextcloud-mysql szerveren kell lennie! + // + // Ebben az adatbázisban könyveli el a script által létrehozott felhasználókat, azért, + // hogy így meg tudja különböztetni, a saját maga által létrehozottakat, az Adminisztrátor + // által, külön, kézzel létrehozott felhasználóktól. + + $db['m2n_prefix'] = "m2n_"; //A nyilvántartó adatbázisban használt prefix, ha van. (ha nincs, akkor "üres string"-re kell állítani) + + + //$db['mayor_host'] = ""; //Akkor használatos, ha a mayor alatti mysql szerver egy másik szerveren van. + //$db['mayor_port'] = ""; // ekkor ki kell venni kommentből, és ki kell tölteni a mayor-mysql serverre érvényes adatokkal. + //$db['mayor_user'] = ""; + //$db['mayor_pass'] = ""; //A kiválasztott felhaználónak olvasnia (GRANT SELECT) kell tudnia a mayor-mysql serveren a(z): + // intezmeny_xxx, mayor_parent, naplo_xxx_yyyy adatbázisokból. + + //Ha a mayor-mysql sezvere fizikailag (vagy virtuálisan) másik szerveren van, akkor érdemes egy "ssh-tunnel"-lel + // áthozni a portját a nextcloud-serverre. (ez a legbiztonságossabb) + + + $m2n['isk_rovidnev'] = "rovid"; //A mayor-ban használt "iskola rövidneve" megnevezés. + + $m2n['min_evfolyam'] = 10; //A minimális évfolyam, amelytől fölfelé engedélyezzük a felhő használatát a diákoknak. + + $m2n['csoport_prefix'] = "(tk) "; //A Nextcloud-ban ezzel az előtaggal jelennek majd meg mayor-ból importált csoportok, a jobb átláthatóság érdekében. + + + + $m2n['default_email'] = "rendszergazda@iskola.hu"; //Ha a mayor intezmeny_xxx.diak, vagy az intezmeny_xxx.tanar táblákban nincs kitöltve az + // e-mail, akkor ezt használja alapértelmezetten. + // (ide megy a jelszó-emlékeztető, amíg a felhasználó birtokba nem veszi a fiókját) + + $m2n['default_passw'] = "EHYmGktzrdfS7wxJR6DFqxjJ"; //Az induló jelszó a Nextcloud-ban a felhasználóknak. (érdemes erőset megadni, a botnet-ek miatt) + + $m2n['default_quota'] = "10GB"; //Az induló fájl-kvóta a Nextcloud-ban. + + $m2n['default_lang'] = "hu"; //Az alapértelmezett nyelv (később minden felhasználó átállíthatja magának) + + $m2n['mindenki_csop'] = "naplós_felhasználók"; //A Nextcloud "mindenki" csoportja + // ebbe a "mindenki" csoportba minden, a script által létrehozott felhasználó bekerül. + + + $occ_path = "/var/www/nextcloud/"; //A Nextcloud-server fájljainak elérési útja. (DocumentRoot) + // Erre szükség van a nextcloud "occ" parancsának eléréséhez. + + $occ_user = "www-data"; //A Nextcloud-servert futtató (Apache) felhasználónév + + + + FONTOS!! + A Nextcloud szerver "occ" parancsa elérhető kell legyen a script számára! + Az "occ" parancs működését pl. az: (>>> sudo -u www-data php /var/www/nextcloud/occ ) kiadásával ellenőrizzük! + + + + + + További Információk: + + Lehetőség van egy-egy felhasználó letiltására, ezt a nyilvántartó adatbázisban tehetjük meg, a "register" tábla, + az adott felhasználónévhez tartozó "status" mezőjének "forbidden"-re állításával. + Ekkor a script nem fog foglalkozni, az adott felhasználóval a továbbiakban. + + + Esetleg érdemes lehet a scriptet betenni a "cron"-ba (éjszakára), így naponta lefut, és követi napló változásait. + + + A mayor által ajánlott "Vezetéknév.Keresztnév" típusú felhasználónév formátum, bár hasznos, mert könnyen megjegyezhető, + viszont (sajnos) egyáltalán nem POSIX kompatibilis (amely csak az angol ABC betűit +pár kiegészítő karaktert engedélyez) + így a legtöbb rendszerrel nem hozható összhangba, ezért szükség van az ékezetes karakterek lecserélésére. + + A karakterek cseréje az alábbi módon történik: + + á --> aa Á --> Aa + ä --> ae Ä --> Aae + é --> ee É --> Ee Például: + í --> ii Í --> Ii Vezetéknév.Keresztnév --> Vezeteekneev.Keresztneev + ó --> oo Ó --> Oo Bőrönd.Ödön --> Booeroend.Oedoen + ö --> oe Ö --> Oe + ő --> ooe Ő --> Ooe + ú --> uu Ú --> Uu + ü --> ue Ü --> Ue + ű --> uue Ű --> Uue + + Ezeket a karakter cseréket maga a script végzi, futás közben, a mayor felhasználónevekből, + a létrejövő Nextcloud felhasználónév már a lecserélt változat lesz. + + + + A mayor-nextcloud script működése néhány mondatban: + + Első lépésben lekérdezi a feltételeknek megfelelő tanköröket a mayorból, (tankör-osztály évfolyama, tankör aktív-e a dátumok apaján) + majd ez alapján ellenőrzi, hogy a Nextcloud-ban már szerepelnek-e ezen tankörneveknek megfelelő csoportok. + Ha új tankör van a mayorban, akkor azt a Nextcloud-ban is létrehozza, ha egy tankört töröltek a mayorból, akkor azt a csoportot Nextcloud-ból is törli. + Fontos! + A csoport prefix-szel, például: "(tk) "-val kezdődő csoportokat magáénak tekinti, és ha nem találja a mayorban, akkor automatikusan töröli! + + Második lépésben lekérdezi a felhasználókat a mayorból, (jogviszony státusz, évfolyam, kapcsolódó tankörök) + csak azokat a tanárokat, illetve diákokat veszi figyelembe, akinek a státusza nem "jogviszonya lezárva", vagy nem "felvételt nyert". + Ha az illető még nem rendelkezik felhasználónévvel a Nextcloud-ban, akkor létrehozza, + - ha a mayorban, az "intezmeny_xxx.diak", illetve az "intezmeny_xxx.tanar" táblákon van beállított e-mail címe, akkor azt használja, ha nincs, + akkor az alapértelmezettet állítja be a Nextcloud-ba, valamint ekkor állítódik be az alapértelmezett qvóta, és a felhasználó valódi neve is. + (ezeket később Rendszergazdai, és Felhasználói oldalról változtatni lehet, értelemszerűen) + Ha az illető már rendelkezik felhasználónévvel, de az le volt tiltva, akkor újra engedélyezi. + + Ezután egyezteti a tankör-csoport összerendeléseket, ha az illető új tankörbe került be, akkor belépteti a megfelelő csportba, + ha kikerült egy tankörből, akkor a csoportból is kilépteti. + + Végül ellenőrzi a kiléptetndő felhasználókat. + Ha velekinek a státusza a mayorban "jogviszonya lezárva"-ra változott, vagy a felhasználót a mayorból törölték, akkor + - ha még nem lépett be soha a Nextcloudba, akkor a felhasználót fizikailag törli. + - ha már használta a fiókját, akkor csak letiltja, azért, hogy a fájljai ne vesszenek el automatikusan. + (Ez, utóbbi esetben a Rendszergazdának kell külön elvégezni a törlést.) + + + + + + + + + + + + + + + |