Me ndërrimin e legjislacionit lidhur me shërbimet besnikërisë («Për shërbimet elektronike të besnikërisë» Ukraina), në kompani ka lindur nevoja që disa departamente të punojnë me çelësa, të vendosur në tokena (në këtë moment, çështja e numrit të çelësave fizikë është ende e hapur).
Si njĂ« mjet me kosto tĂ« ulĂ«t (pa pagesĂ«) zgjedhja ra menjĂ«herĂ« nĂ« . Serveri nĂ« Ubuntu 18.04 funksionoi falĂ« publikimit dhe Ă«shtĂ« testuar me sukses nĂ« disa diskĂ« flash (pĂ«r mungesĂ« tĂ« atij momenti tĂ« tokenit). Nuk u identifikuan asnjĂ« problem tĂ« veçantĂ«, pĂ«rveç monopolizimit (rezervimit pĂ«r pĂ«rdoruesin) nĂ« atĂ« moment. ĂshtĂ« e qartĂ« se pĂ«r tĂ« organizuar qasje pĂ«r pĂ«rdorues tĂ« shumtĂ« (tĂ« paktĂ«n dy, pĂ«r fillim) nevojitet tĂ« ndahen akseset nĂ« kohĂ« dhe t'i detyrohen tĂ« punojnĂ« radhazi.
Lindi pyetja: Si me sa mĂ« pak vĂ«shtirĂ«si tĂ« bĂ«het qĂ« tĂ« gjithĂ« tĂ« funksiononinâŠ
Një pjesë e rëndësishme

dhe varianti. Disa ikona për skedarët bat, konkretisht
a) Lidhja e çelësit të aksesit.
b) Prishja e qartë.
Neni «б» kontestuese, prandaj u vendos të dha kohë për punë me çelësin prej 3 minutash.
Karakteristika e klientit usbip është se pasi të aktivizohet, ai mbetet i ngjitur në konsolë, pa ndërprerjen e sesionit të konsolës; mund të mbyllet lidhja "ashtu si ashpër" nga ana e klientit dhe gjithashtu nga ana e serverit.
Ja çfarë funksionoi normalisht për ne:
e para: lidhja on.bat
usbip -a 172.16.12.26 4-1
msg * "Nënshkrimi/tokeni i pavlefshëm ose i zënë"e dyta: shkëputja off.bat
ping 127.0.0.1 -n 180
taskkill /IM usbip.exe /Fpa u mbështetur në ndershmërinë e përdoruesit, skenarët u bashkuan në token.bat
on.bat | off.batĂfarĂ« rezulton: tĂ« gjitha skedarĂ«t janĂ« nĂ« tĂ« njĂ«jtĂ«n dosje, duke aktivizuar skedarin token.bat; nĂ«se lidhja Ă«shtĂ« mbyllur nga pĂ«rdoruesi, menjĂ«herĂ« ka njĂ« mesazh pĂ«r paqartĂ«sinĂ« e çelĂ«sit, nĂ« rastin tjetĂ«r, vetĂ«m pas 180 pingjeve. Rreshtat e kodit tĂ« dhĂ«nĂ« mund tĂ« pajisen me "@ECHO OFF" dhe drejtim tĂ« konsolĂ«s nĂ« "> nul" pĂ«r tĂ« mos e shkaktuar shumĂ« tronditje pĂ«r pĂ«rdoruesin, megjithatĂ«, pĂ«r aktivizim nĂ« testim nuk Ă«shtĂ« e domosdoshme. NjĂ« "testim" fillestar nĂ« USB tregoi se gjithçka Ă«shtĂ« parashikuar-sigurta-qartĂ«. PĂ«r mĂ« tepĂ«r, nga ana e serverit, nuk nevojiten asnjĂ« manipulim.

Natyrisht, gjatë punës me tokenin, gjërat nuk shkuan siç pritej: kur lidhet fizikisht në menaxhuesin e pajisjeve, tokeni regjistrohet si 2 pajisje (WUDF dhe kartë inteligjente), ndërsa kur është në rrjet vetëm si WUDF (megjithatë, për të kërkuar PIN-in, kjo është e mjaftueshme).

Ndërkohë, rezultoi se "taskkill" nuk është aq i ashpër dhe mbyllja e lidhjes në klient është problematike dhe edhe nëse arrin, nuk garanton mbylljen e saj për të në server.
Duke sakrifikuar të gjitha konsolat në klient, skripti i dytë mori formën:
ping 127.0.0.1 -n 180 > nul
taskkill /IM usbip.exe /F /T > nul
ping 127.0.0.1 -n 10 > nul
taskkill /IM conhost.exe /F /T > nulndërsa efikasiteti i tij është më pak se 50%, pasi serveri e vazhdonte të konsideronte lidhjen si të hapur.
Problemet me lidhjen çuan në mendime për modernizimin e pjesës server.
Pjesa server
ĂfarĂ« Ă«shtĂ« e nevojshme:
- Të çaktivizosh përdoruesit inaktivë nga shërbimi.
- Të shohësh kush po përdor aktualisht (apo akoma mban) tokenin.
- Të shohësh nëse tokeni është i lidhur me kompjuterin vetë.
Këto detyra u vendos të zgjidhen përmes shërbimeve crontab dhe apache. Diskrecioni i përsëritjes së gjendjes së rezultateve të monitorimit të pikave 2 dhe 3 tregon se sistemi i skedarëve mund të vendoset në ramdrive. Në /etc/fstab u shtua rreshti
tmpfs /ram_drive tmpfs defaults,nodev,size=64K 0 0
Në rrënjë u krijua një dosje script me skriptet: ndërrimi-montimi i token-it usb_restart.sh
usbip unbind -b 1-2
sleep 2
usbip bind -b 1-2
sleep 2
usbip attach --remote=localhost --busid=1-2
sleep 2
usbip detach --port=00marrja e listës së pajisjeve aktive usblist_id.sh
usbip list -r 127.0.0.1 | grep ':' | awk -F ":" '{print $1}' | sed s/' '//g | grep -v "^$" > /ram_drive/usb_id.txtmarrja e listës së IP-ve aktive (me përmirësim të mëtejshëm për të shfaqur identifikuesit e përdoruesve) usbip_client_ip.sh
netstat -an | grep :3240 | grep ESTABLISHED | awk '{print $5}' | cut -f1 -d":" > /ram_drive/usb_ip_cli.txtSë fundi, crontab duket kështu:
*/5 * * * * /!script/usb_restart.sh > /dev/null 2>&1
* * * * * ( sleep 30 ; /!script/usblist_id.sh > /dev/null)
* * * * * (sleep 10 ; /!script/usbip_client_ip.sh > /dev/null)Pra, kemi: çdo 5 minuta mund të lidhet një përdorues i ri, pavarësisht se kush ka punuar me token-in. Në serverin http, përmes një simlinku, është lidhur dosja /ramdrive, në të cilën ruhen 2 skedare tekstualë, që tregojnë gjendjen e serverit usbip.
Pjesa e ardhshme: «E shëmtuara në amballazh»
Varianti II. Të kënaqim përdoruesin me ndonjë ndërfaqe më pak të frikshme. Duke u shqetësuar për faktin se përdoruesit kanë versione të ndryshme të Windows me framework-e të ndryshme dhe me të drejta të ndryshme, një qasje më pak problematike se nuk kam gjetur (sigurisht që jam për C#, por jo në këtë rast). Ekzekutimi i skedarëve bat nga ndërfaqja mund të bëhet edhe në sfond, të minimizuar, por pa provimin e duhur, personalisht mbaj mendimin: duhet vizualizuar për të mbledhur pakënaqësitë e përdoruesve.

Me ndërfaqen dhe pjesën programore janë trajtuar detyra të mëposhtme:
- Të tregojmë nëse tokeni është i ngarkuar në këtë moment.
- Në fillim të ekzekutimit, konfigurimi fillestar me gjenerimin e skedarëve bat «të duhur» që realizojnë nisjen dhe ndërprerjen e seancës së punës me serverin e tokenit. Në ekzekutime të mëpasshme realizimi i modit «shërbim» nëpërmjet fjalëkalimit.
- Kontrolli i lidhjes me serverin, me rezultatin e të cilit bëhet anketimi për ngarkesën ose shfaqen mesazhe për probleme. Kur rikthehet lidhja, programi fillon automatikisht të funksionojë në modin e zakonshëm.
Puna me serverin WEB është realizuar përmes mjeteve të shtesës fphttpclient.

ka gjithashtu njĂ« vazhdim tĂ« mendimeve nĂ« lidhje me temĂ«n e artikullit, ashtu si dhe njĂ« entuziazĂ«m fillestar tĂ« pjesshĂ«m pĂ«r produktin VirtualHere me karakteristikat e tijâŠ
Burimi: habr.com
