Screen: Dijeljenje terminalske sesije
Zamolili ste iskusnijeg kolegu da riješi problem na vašem Linux serveru. Dali ste mu, privremeno, administratorske ovlasti, no vi biste željeli vidjeti što on radi, kako bi ponešto naučili i slijedeći put bili u stanju sami riješiti problem. Iskoristit ćete screen i obojica se spojiti na istu sesiju.
Pretpostavimo da ste kolegi dali root ovlasti na serveru. Pokrenite screen i svojoj sesiji dajte neko ime koje se lako pamti, na primjer sistemac.
screen -d -m -S sistemac
Prekidači -d -m u ovoj kombinaciji znače da pokrećete detached sesiju, ne mareći ovog časa za postavke terminala, a iza -S slijedi ime koje ste dali sesiji. Nakon toga obojica se možete spojiti na tu sesiju. Vi to učinite ovako:
# screen -r sistemac
a vaš kolega ovako:
# screen -x sistemac
gdje u prvom slučaju -r znači resume, a u drugom -x znači da se korisnik spaja na sesiju koja nije detached.
Nakon toga obojica ćete vidjeti ekran čiji će sadržaj biti posve identičan.
Ovo će raditi ukoliko ste i vi i kolega prijavljeni kao isti korisnik, na primjer root. No ako želite dijeliti ekran zadržavajući pri tom svatko svoje ovlasti, na primjer kada obojica imate običan korisnički račun, ali su vam povećane ovlasti pomoću /etc/sudoers, tada imate nešto više posla.
Prije svega, program screen treba raditi u suid root načinu. To se postiže ovim naredbama, ali nakon što ste se uvjerili da nijedna instanca programa screen nije aktivna:
# su -
Password:
# chmod u+s $(which screen)
# chmod 755 /var/run/screen
# rm -fr /var/run/screen/*
# exit
Dakle sa svog korisničkog računa najprije naredbom su - i utipkavanjem root passworda dobijete adminstratorske ovlasti, dodate suid bit vlasniku programa screen, te "olabavite" dozvole direktoriju /var/run/screen, kako bi i drugi krisnici mogli do njegova sadržaja. Time ste olabavili i sigurnost svog servera, jer ste omogućili drugim korisnicima pristup ekranima.
Sada možete pokrenuti screen, te uključiti višekorisnički način rada:
$ Ctrl-a :multiuser on
$ Ctrl-a :acladd user2
gdje ćete umjesto user2 upisati ime koje koristi vaš kolega. Sada možete prekrižiti ruke i gledati majstora na djelu. :)
Svaki od ova dva načina ima svoje rizike. Dati nekom root zaporku nije laka odluka, ali to se može riješti tako što ćete smisliti privremenu zaporku, koji ćete promijeniti odmah nakon intervencije. S druge strane, dodjela setuid bita programu screen i dopuštanje drugim korisnicima pristup direktoriju /var/run/screen još je rizičnije, pogotovo ako na serveru imate mnogo korisničkih računa od kojih neki mogu biti provaljeni, ili su njihovi vlasnici radoznali. I ove bi izmjene trebalo poništiti odmah nakon obavljenog posla. Odluka je na vama, važno je da ste svjesni rizika, da ga prihvaćate i da ćete ga eliminirati čim prestane potreba za intervencijom kolege.
Vezani članci:
- Logirajte se za dodavanje komentara
- Inačica za ispis
- PDF version