From 3304fc0d312984a596940e7c6a861aded479b719 Mon Sep 17 00:00:00 2001 From: M.Gergo Date: Mon, 10 Sep 2018 01:01:17 +0200 Subject: Mayor-Nextcloud javítás +külső konfigfile. --- "egy\303\251b/nextcloud/README" | 118 +++++++++++------------ "egy\303\251b/nextcloud/mayor-nextcloud.cfg.php" | 37 +++++++ "egy\303\251b/nextcloud/mayor-nextcloud.php" | 39 +++++--- 3 files changed, 123 insertions(+), 71 deletions(-) create mode 100644 "egy\303\251b/nextcloud/mayor-nextcloud.cfg.php" (limited to 'egyéb') diff --git "a/egy\303\251b/nextcloud/README" "b/egy\303\251b/nextcloud/README" index 35911552..f7259c7e 100644 --- "a/egy\303\251b/nextcloud/README" +++ "b/egy\303\251b/nextcloud/README" @@ -19,102 +19,102 @@ FONTOS! 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. +-(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) +-(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['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['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étrehozni 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['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étrehozni 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['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['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 létrehozott felhasználóktól. + $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 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['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. + //$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) + //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['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['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['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_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_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_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['default_lang'] = "hu"; //Az alapértelmezett nyelv (később minden felhasználó átállíthatja magának) - $m2n['min_osztalyok'] = array( ); //Ide lehet felsorolni az osztályokat, ha konkrét osztályokat akaruni importálni, - // ez logikai (megengedő) VAGY kapcsolatban van a $m2n['min_evfolyam'] -mal. - // Tehát ha beállítunk egy minimális évfolyamot, a felsorolt osztályok akkor is importálódnak, - // ha a minimális évfolyamnál kisebb. //pl: array('9.a','11.a'); + $m2n['min_osztalyok'] = array( ); //Ide lehet felsorolni az osztályokat, ha konkrét osztályokat akaruni importálni, + // ez logikai (megengedő) VAGY kapcsolatban van a $m2n['min_evfolyam'] -mal. + // Tehát ha beállítunk egy minimális évfolyamot, a felsorolt osztályok akkor is importálódnak, + // ha a minimális évfolyamnál kisebb. //pl: array('9.a','11.a'); - $m2n['csoportnev_hossz'] = 40; // Formázott kimenet: Kiegészíti "space"-kkel a kimenetet, ha rövidebb lenne a csoport neve. + $m2n['csoportnev_hossz'] = 40; // Formázott kimenet: Kiegészíti "space"-kkel a kimenetet, ha rövidebb lenne a csoport neve. - $m2n['felhasznalo_hossz'] = 45; // Formázott kimenet: Kiegészíti "space"-kkel a kimenetet, ha rövidebb lenne a felhasználó valódi neve. + $m2n['felhasznalo_hossz'] = 45; // Formázott kimenet: Kiegészíti "space"-kkel a kimenetet, ha rövidebb lenne a felhasználó valódi neve. - $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. + $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. - $m2n['zaras_tartas'] = "2018-06-19"; //A jelölt napon befejezett, de nem lezárt tanév adatainak tartása tovább, ha már nem kell, akkor állítsd "1970-01-01"-ra.; + $m2n['zaras_tartas'] = "2018-06-19"; //A jelölt napon befejezett, de nem lezárt tanév adatainak tartása tovább, ha már nem kell, akkor állítsd "1970-01-01"-ra.; - $m2n['verbose'] = 3 //Log bőbeszédűség (A leg informatívabb, talán a 3-mas fokozat.) - // 0: csak fatális hibák, 1: fontosabbak, 2: csop./felh. elvétel, 3: csop./felh. hozzáadás, - // 4: csop./felh. tények, 5: részletesebben, 6: sql query + bash parancsok kiírása + $m2n['verbose'] = 3 //Log bőbeszédűség (A leg informatívabb(tömörebb), talán a 3-mas fokozat.) + // 0: csak fatális hibák, 1: fontosabbak, 2: csop./felh. elvétel, 3: csop./felh. hozzáadás, + // 4: csop./felh. tények, 5: részletesebben, 6: sql query + bash parancsok kiírása - $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_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 + $occ_user = "www-data"; //A Nextcloud-servert futtató (Apache) felhasználónév diff --git "a/egy\303\251b/nextcloud/mayor-nextcloud.cfg.php" "b/egy\303\251b/nextcloud/mayor-nextcloud.cfg.php" new file mode 100644 index 00000000..d31ae9bf --- /dev/null +++ "b/egy\303\251b/nextcloud/mayor-nextcloud.cfg.php" @@ -0,0 +1,37 @@ +#!/usr/bin/php + diff --git "a/egy\303\251b/nextcloud/mayor-nextcloud.php" "b/egy\303\251b/nextcloud/mayor-nextcloud.php" index 4dee20bc..97d44927 100644 --- "a/egy\303\251b/nextcloud/mayor-nextcloud.php" +++ "b/egy\303\251b/nextcloud/mayor-nextcloud.php" @@ -2,8 +2,7 @@ = 7) { //MySQLi (Im $ret['status'][] = $row['status']; } mysqli_free_result($r); - if ($log['verbose'] > 4 ){ echo "*\tFelhasználó-feljegyzések lekérdezése.\n"; } + if ($log['verbose'] > 4 ){ echo "*\tFelhasználó m2n nyilvántartás lekérdezése.\n"; } return $ret; } else { echo "\nM2N -> \t**** Adatbázislekérdezési hiba! ****\n"; @@ -124,7 +129,7 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im $ret[] = $row['account']; } mysqli_free_result($r); - if ($log['verbose'] > 4 ){ echo "*\tFelhasználó-letiltások feljegyzésének lekérdezése.\n"; } + if ($log['verbose'] > 4 ){ echo "*\tFelhasználó-letiltások m2n nyilvántartás lekérdezése.\n"; } return $ret; } else { echo "\nM2N ->\t**** Adatbázislekérdezési hiba! ****\n"; @@ -136,7 +141,7 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im $q = "INSERT INTO ".$db['m2n_db'].".".$db['m2n_prefix']."register (account) VALUES ('".$account."')"; if ($log['verbose'] > 5 ){ echo "M2N -> \t".$q."\n"; } if(( mysqli_query($link, $q)) !== FALSE ){ - if ($log['verbose'] > 4 ){ echo "*\tFelhasználó-hozzáadás feljegyzése.\n"; } + if ($log['verbose'] > 4 ){ echo "*\tFelhasználó-hozzáadás, m2n nyilvántartásba vétele.\n"; } } } @@ -145,7 +150,7 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im $q = "UPDATE ".$db['m2n_db'].".".$db['m2n_prefix']."register SET status='active' WHERE account='".$account."'"; if ($log['verbose'] > 5 ){ echo "M2N ->\t".$q."\n"; } if(( mysqli_query($link, $q)) !== FALSE ){ - if ($log['verbose'] > 4 ){ echo "*\tFelhasználó-engedélyezés feljegyzése.\n" ;} + if ($log['verbose'] > 4 ){ echo "*\tFelhasználó-engedélyezés, m2n nyilvántartásba vétele.\n" ;} } } @@ -154,7 +159,7 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im $q = "DELETE FROM ".$db['m2n_db'].".".$db['m2n_prefix']."register WHERE account='".$account."' "; if ($log['verbose'] > 5 ){ echo "M2N ->\t".$q."\n"; } if(( mysqli_query($link, $q)) !== FALSE ){ - if ($log['verbose'] > 5 ){ echo "*\tFelhasználó-törlés feljegyzése.\n"; } + if ($log['verbose'] > 5 ){ echo "*\tFelhasználó-törlés, m2n nyilvántartásba vétele.\n"; } } } @@ -163,7 +168,7 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im $q = "UPDATE ".$db['m2n_db'].".".$db['m2n_prefix']."register SET status='disabled' WHERE account='".$account."'"; if ($log['verbose'] > 5 ){ echo "M2N ->\t".$q."\n"; } if(( mysqli_query($link, $q)) !== FALSE ){ - if ($log['verbose'] > 5 ){ echo "*\tFelhasználó-letiltás feljegyzése.\n"; } + if ($log['verbose'] > 5 ){ echo "*\tFelhasználó-letiltás, m2n nyilvántartásba vétele.\n"; } } } @@ -459,6 +464,14 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im if($log['verbose'] > 0) { echo "\n\n######## Mayor-Nextcloud Script ########\n\n\n"; } + if( file_exists($cfgfile)===TRUE ){ + include($cfgfile); + if($log['verbose'] > 0) { echo "*** M2N Config betöltése: ($cfgfile fájlból.)"; } + } else { + if($log['verbose'] > 0) { echo "*** M2N Config betöltése: (mayor-nextcloud.php fejlécéből.)"; } + } + + if(($link = db_connect($db)) == FALSE){ //csatlakozás echo "\n******** MySQL (general) kapcsolat hiba. ********\n"; echo "\n******** Script leáll... ********\n"; @@ -549,7 +562,7 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im nxt_register_userena($link, $curr); //Ha netán le lenne tiltva, akkor engedélyezi, user_ena($curr); //ha a script tiltotta le. } - } else { if ($log['verbose'] > 1 ){ echo "? -\t\tA felhasználó:".po("\t$curr",$m2n['felhasznalo_hossz'],1)."\tszerepel a naplóban, de nincs benne az m2n nyilvántartásában.\n";} } + } else { if ($log['verbose'] > 1 ){ echo "_??? -\t\tA felhasználó:".po("\t$curr",$m2n['felhasznalo_hossz'],1)."\tszerepel a naplóban, de nincs benne az m2n nyilvántartásában.\n";} } foreach($nxt_group as $key3 => $val3){ //A tankörök egyeztetése if(in_array($key3, $tankorei) or $key3 == $m2n['mindenki_csop']){ //szerepel-e a felhasználó tankörei között a csoport, vagy a "mindenki" csoport? @@ -577,9 +590,11 @@ if (function_exists('mysqli_connect') and PHP_MAJOR_VERSION >= 7) { //MySQLi (Im user_add($curr, $curr_n); //Akkor hozzá kell adni nxt_register_useradd($link, $curr); - foreach($tankorei as $key3 => $val3){ //Hozzáadja a (tankör)csoportokhoz is egyből. - group_user_add($val3,$curr); - if ($log['verbose'] > 2 ){ echo "* -\t\tHozzáadva a:".po("\t $val3",$m2n['csoportnev_hossz'],1)."\tcsoporthoz.\n"; } + foreach($tankorei as $key3 => $val3){ //Hozzáadja a (tankör)csoportokhoz is egyből, + if(in_array($key3, $nxt_group) { //de, csak akkor, ha az a csoport a Nextcloud-ban is létezik. + group_user_add($val3,$curr); + if ($log['verbose'] > 2 ){ echo "* -\t\tHozzáadva a:".po("\t $val3",$m2n['csoportnev_hossz'],1)."\tcsoporthoz.\n"; } + } } $params['quota'] = $m2n['default_quota']; // Alapértelmezett kvóta $params['lang'] = $m2n['default_lang']; // Nyelv -- cgit v1.2.3