WebGUI, PHP+bash helyett programnyelv

 ( BognarB | 2019. február 11., hétfő - 12:26 )

Hi,

Elöljáróban szeretném leszögezni, hogy nem értek a programozáshoz, nem ismerem a nyelveket és eljárásokat, hobbiból szoktam apróságokat írkálni.

Pár éve összetákoltam egy kis Web felületet PHP gombok + shell script (plusz itt-ott egy kis cgi) alapon itthoni kis home eszköz kezelésére, melyet szeretnék kicsit gatyába rázni.
http://letix.hu/webiface.JPG

Szeretném még jópár szolgáltatással bővíteni (pl futtatna majd a kisgép 1-2 linux VM-et qemu-kvm alapon) pár VM kezelő gombbal. (start/stop/restart).

Amiket jó lenne rendbe szedni/tisztázni:
- PHP+shell helyett szívesen újraírnám, de milyen nyelvben kéne? (kéne egyáltalán? mit nyernék vele? A jelenlegi kezelése relatíve egyszerű, de mégis melós a funkciónként 1-1db file miatt.)
- A gép webszervert futtató user jelszó nélkül tud sudo-zni ahhoz hogy minden feladat kiadható legyen a gombokkal. Ez a pont biztonsági szempontból rendkívül gyenge, erre is jöhetne ötlet.
- HTTPS + basic auth van rajta, csak belső hálózatról érhető el tehát a fenti miatt nem jelentős a kockázat.

Köszönöm!
udv
letix

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Vak vezet világtalant aspektusból szólok bele. Írod:

mégis melós a funkciónként 1-1db file miatt

Ennek nem kell így lennie. Ha van egyetlen file-od, amelyre más-más nevű symlinkekkel is hivatkozol, majd a programban akár egy case struktúrában elágazol $0 alapján, persze lefejtve róla az esetleges elérési utat - talán basename, de ha jól gondolom, a ## vagy %% megfelelő használata is jó lesz, közben kitaláltam:

a=/alma/korte/szilva
echo "${a##*/}"

szilva

Tehát a "${0##*/}" kifejezés kell neked.
Na, szóval akkor egyetlen file-ba írhatsz mindent, s könnyebb karbantatani. Vagy úgy, hogy paramétereket adsz át, például:

programom --mount --2T


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Kösz a válaszod!

Hiányzik azért némi bash skill, gyanítom hogy nem lenne nagy ördöngösség újraírni egy nagy állományba és abban szeparálni a funkciókat. Már gondoltam erre de eddig nem vitt rá a lélek, viszont talán ez a legjobb megoldás?

Egy nálam okosabb ismerős javasolt esetleg python-t, még akár érdekelne is a nyelv maga, de vajon onnan meg tudom hívni a kis funkcióimat? Pl rsync, curlftpfs, smartctl.. ?

A mostani felállás (funkció/gomb/shell script) előnye lehet például a jogok korlátozása (execute) magára a scriptekre, feltéve ha mást is terveznék beengedni..

A sudo-s megoldásra van valakinek jobb ötlete?
-----------------------------------------
Linux parancsok, kezdőknek

Mindenképp egy file-ba írnám. Marha rossz sok kis file-t karbantartani. Ami nekem nagyon bejött, vezesd be a verziókezelést. Csak annyi, hogy legyen verziószámod, nem svn-ről vagy git-ről beszélek. Egy idő után fogalmad sem lesz, a legutóbbi változatot használod-e, vagy csak gondoltál arra, hogy a megfelelő helyre másold azt. A legapróbb, akár stilisztikai változás esetén is emeld a verziószámot. Ingyen van a nagyobb szám is, de nem lesz különböző változatod azonos release alatt. :)

Maradnék a bash-nél, hiszen külső parancsok hívogatására épp az való. Lehet awk-ból is visszahívni shellt, abból külső parancsot, csak minek. Nem hinném, hogy olyan műveletekre van szükséged, amelyeket más nyelvek hatékonyabban támogatnak.

Sudo-ra esetleg bekérnék felhasználónév jelszó párost, de ötletem sincs, webes technológiák esetén ezek titkosított átvitele majd ellenőrzése hogyan történik, ennek én is csak utánaolvasni tudnék.


tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE