Scenarijus, skirtas šnipinėti USB įrenginių turinį ir nukopijuoti jį į kompiuterį

Aš visada buvau neramus studentas, visada norėjau pasinaudoti tokiomis galimybėmis, kaip ... pavyzdžiui, semestro egzaminų kopijavimas iš dėstytojo USB atmintinės ar pan. Kai mokiausi vidurinėje mokykloje (kompiuterių specialybėje), norėjau užprogramuoti „kažką“, kuris padėtų:

  1. Aptikti, kada USB įrenginys prijungtas prie klasės kompiuterio
  2. Nukopijuokite visą turinį iš šio įrenginio į savo kompiuterį

Tai leistų egzaminą turėti daug anksčiau, tereikės, kad mokytojas prijungtų savo USB atmintį („pendrive“) prie kompiuterio ir tiek.

Deja, mano institute kompiuteriuose buvo „Windows“ ir ... aš niekada ir niekada neišmokau programuoti šiai OS.

Tačiau dabar aš naudoju Linux (akivaizdu, kad ne? LOL!), ir su žiniomis, kurias galėjau įgyti per šiuos metus, dabar TAIP! Aš jau galiu tai pasiekti su Linux 

Tai yra, aš užprogramavau paprastą scenarijų, kuris atliktų šiuos veiksmus:

1. Sukurkite aplanką /home/.USBDRIVES/
2. Kas 5 sekundes tikrinama, ar prie kompiuterio yra prijungtas USB įrenginys (arba CD / DVD).
3. Jei vienas bus prijungtas, jis sukurs aplanką /home/.USBDRIVES/ su USB pavadinimu (pavyzdžiui: atmintis-2gb), taip pat nukopijuos visus failus .doc, .pdf ir kt (čia sąrašas) į šį ką tik sukurtą aplanką.
4. Jei USB nėra prijungtas, jis tiesiog palauks 5 sekundes, kad iš naujo paleistų patikrinimą, kurį paaiškinau aukščiau 

Čia yra scenarijus ir failas, kuriame yra formatai, kuriuos reikia nukopijuoti:

Atsisiųskite USB-Spy.zip
Scenarijus turi būti paleistas kaip root, kad jo veikimas nebūtų ribojamas. Čia paaiškinu, kaip to pasiekti

Kad scenarijus veiktų be problemų, geriausia jį paleisti su administratoriaus teisėmis (root), nes akivaizdu, kad jį reikia paleisti šalia kompiuterio, tokiu būdu užtikriname, kad jei kompiuteris bus paleistas iš naujo arba išjungti, kai vėl paleisite scenarijų, jis veiks ir bus paruoštas iš bet kurio USB išgauti tai, ko norime 

Atidarykime terminalą ... kai tik atsidarys ...

1. Tarkime, kad turime abu failus / opt / (/opt/usb-spy.sh y /opt/usb-spy.files), turime suteikti jai vykdymo teises:

sudo chmod +x /opt/usb-spy.sh

2. Mes atidarome failą /etc/rc.local :

sudo nano /etc/rc.local

3. Jame rašome virš paskutinės eilutės (0 išėjimas) Kitas:

/opt/usb-spy.sh &

4. Dabar paspauskite [Ctrl] + [X], kad išsaugotumėte ir išeitumėte iš failo, paspauskite [S] arba [Y] (priklausomai nuo sistemos kalbos) ir tada [Enter]. To pakaks, kad mūsų atlikti pakeitimai būtų išsaugoti.

O voila, to pakaks, kad scenarijus prasidėtų kaip root, kai įjungiame kompiuterį.

Svarbu patikrinti, ar failas usb-spy.files yra tame pačiame kataloge kaip usb-spy.sh

Dabar... Aš šiek tiek paaiškinsiu apie vidinį scenarijaus veikimą, nes žinau, kad čia yra daug Bash mylėtojų 

Q: Iš kur scenarijus žino, kad prijungtas USB įrenginys?
A: Mūsų sistemos faile / etc / mtab yra įrenginiai arba skaidiniai, kurie yra sumontuoti mūsų sistemoje. Per 23 scenarijaus eilutę yra žinoma, ar yra prijungtas USB, ar ne (padaryti katę į mtab ir grep žiniasklaidą)
K: Taip, bet Iš kur scenarijus žino, ar katė ir grepas mums grąžina bet kokius duomenis, ar ne?
A: Per a jei tada kita kilpa kuris prasideda 24 eilutėje.
Q: Kaip padaryti, kad jis nukopijuotų tik failus su norimais plėtiniais? (.doc, .pdf ir kt.)
A: Naudojant „rsync“ su įvairiais parametrais, tai yra 34 eilutėje. Paprasčiau paaiškinta, kad naudodamas „rsync“ nukopijuoju tik tuos failus, kurie atitinka „usb-spy.files“ filtrą, kiekviena eilutė yra taip sakant filtras. Aš taip pat perduodu parametrą --prune-empty-dirs rsync, kad man nesudarytų tuščių katalogų.
Beje kažkas svarbus. Jei prijungtas (pavyzdžiui) 8 GB USB įrenginys, viskas veikia teisingai, tačiau pastebėjau, kad jei prijungtas daug didesnės talpos įrenginys, pvz., 500 GB ar 1 TB, reikia ieškoti .doc failų ir pan., Norint juos nukopijuoti. prie kompiuterio užtruko ilgai, todėl nustatiau GB ribą. Tai yra, 31 eilutėje aš pareiškiu, kad jei USB įrenginys yra mažesnis nei 16 GB, tada ieškokite failų ir nukopijuokite juos, bet jei jis didesnis nei 16 GB, nedarykite nieko. Jei norite padidinti 16 GB 32 GB, tiesiog padidinkite tą skaičių iš 31 eilutės

Iš tikrųjų nėra ką daug paaiškinti, scenarijų suprasti labai paprasta 

Jei kam kyla abejonių, klausimų, skundų, idėjų ar pasiūlymų, prašau tai pasakyti ir aš pažadu jiems padėti, kiek galiu.

Na, aš galvojau įdėti kažką panašaus: «šis scenarijus skirtas tik švietimo tikslams, nenaudokite su kenksmingais failais» …bet...kas po velnių!, naudokite kam norite, laikas mums, studentams, turėti kažkokį pranašumą prieš mus slegiančius mokytojus 

saludos

Scenarijus vis dar gali būti patobulintas, bet tai yra gera pradžia, manau, jei kas nors jausis motyvuotas prisidėti prie šio „kilnaus“ tikslo, bus malonu 

Pridėti kaip pageidaujamą šaltinį „Google“ sistemoje