De ce USER si NU admin
Probabil ca este una din intrebarile care fiecare utilizator Windows ar trebui sa si-o puna. Incepand cu Windows NT, sistemul de operare al celor de la Microsoft a inceput sa implementeze o bruma de sistem de operare multi-user, deci implicit au aparut privilegiile pentru ca utilizatorii sa nu se mai plimbe de colo-colo si sa faca FUBAR sistemul. Pentru home use, incepand cu Windows XP SP2, Microsoft a inceput sa ofere in sfarsit ceea ce se doreste de la un asemenea sistem, chiar daca pe alocuri lasa de dorit.
Si totusi de ce USER? Simplu … pe vremea cand aveam vechea lista de messenger se intampla destul de des sa bornaie careva ca iar i-a fost virusat “pisiul”. Evident, lucrand in marea majoritate a timpului sub OS X sau ubuntu, mi se cam rupea de chestiile astea pentru ca nu ma loveam de astfel de probleme. Nu pentru ca sistemele respective nu ar fi virusabile, ci pentru ca nu sunt virusabile in mod implicit. Trebuie sa o faci cu intentie sau sa faci parte din clasa populatiei care este imbucurator de proasta. Pacatul Microsoft este faptul ca in mod implicit un sistem proaspat instalat da pe mana utilizatorului un cont cu drepturi de administrator. Marea masa a utilizatorilor s-au obisnuit cu ideea de a face ce le trece prin bostan chiar daca asta nu inseamna ca fac neaparat si bine, si Doamne fereste, nu ar depune eforturi intelectuale pentru remedierea situatiei. Gravitatea provine din faptul ca un virus rulat din “admin” se va instala ca “admin”, deci are acces deplin la anumite resurse care ar trebui sa fie protejate, si fara de care ar fi o simpla chestie inutila care nu ar “virusa” nimic. Si asa ajungem la aia care bornaiau mai sus ca au fost virusati.
Pomeneam mai de mult pe forumuri ca modul in care este folosit un sistem de operare sau distributie face diferenta dintre user si [l]user (aka admin cu drepturi depline), pentru ca unii nu pricep ca utilizatorul este chestia care utilizeaza computerul, in timp ce administratorul … administreaza si cand nu este nevoie, nu se foloseste. Iar prin asta ma refer la privilegii, nu la persoane, pentru ca pot sa fie una si aceeasi. Sincer am fost si eu in categoria [l]user pana sa ma impinga o chestie de la spate ca sa imi fac lucrarea de diploma din securitatea de Windows. Deci am devenit user. Chiar daca in toata viata mea sub Windows am avut vreo doua infectii, precaut fiind din fire, sa zicem ca un antivirus oricat de bun ar fi el, nu are o rata de detectie de 100%. Deci de ce sa se lupte direct impotriva cauzei, cand se poate lupta folosind metode inteligente: folosind cel mai mic privilegiu, virusul nu se va putea instala. Antivirusul devine un accesoriu care poate sa fie utilizat mai rar, eventual sa fie folosit doar ca scanner la nevoie, contrar utilizarii lui uzuale, si anume aceea de scanner real-time care seaca sistemul de resurse. Din pacate aici se apeleaza la inteligenta utilizatorului. Din pacate pentru ca lumea e plina de prosti, si in acelasi timp tot mai multi copii prosti au acces la computer.
Fac o paranteza despre antivirusi aici. Din moment ce am dat banii pe o licenta de Windows, nu concep sa dau banii si pe un produs ce ar trebui sa apere produsul achizitionat, atata timp cat problema provide din interiorul lui, datorita proastei implementari a ideii de securitate. Zi asta chiar daca Windows Vista a inceput sa miste ceva in acest sens, dar inca e in spatele sistemelor UNIX-like, si oricum nu as mai da banii pe inca o licenta. Deci am folosit chestii free/freeware. Momentan recomand: Avira AntiVir Personal Edition, AVG Free, fix in ordinea asta, cu mentiunea ca Avira are rata de detectie mai buna, in timp ce AVG nu e atat de insetat dupa resurse. Ar mai fi de mentionat un scanner freeware, componenta a unui antivirus care deasemenea are si versiune comerciala, a-squared Free.
Solutia problemelor este simpla. Am pus poze pentru ca pe astea le pricepe toata lumea …
Acestia sunt niste pasi usor de urmat de catre oricine. Problemele care intervin sunt acelea de uzabilitate: cum instalez un program, cum folosesc un program care necesita privilegii mai mari, cum modific o setare de sistem care poate fi modificata doar de catre administrator, etc. - intrebari pe care trebuie sa si le puna oricine.
Primele doua situatii descrise mai sus au o solutie relativ simpla. In momentul in care se ruleaza de sub cont de user, in meniul contextual (click dreapta pe fisierul executabil sau pe shortcut) apare optiunea “Run as…“. Folosind aceasta functie, se va putea rula aplicatia respectiva cu privilegiile unui cont diferit, deci se vor putea folosi drepturi administrative la nevoie pentru aplicatiile de instalare, sau pentru aplicatiile care necesita privilegii superioare.
Managementul fisierelor poate deveni problematic din moment ce file managerul nu mai are drepturi depline. Exista doua solutii.
1) “Run as…” cu drepturi de administrator la Internet Explorer. Tastand in bara de adresa o locatie locala, spre exemplu C:\, se va observa ca acesta o sa arate precum Windows Explorer.
2) Metoda mea preferata datorita faptului ca are mai multe avantaje este aceea de a lansa Windows Explorer cu drepturi de administrator. In mod normal aceasta nu este posibila fara niste modificari. In primul rand trebuie sa se permita lansarea lui explorer.exe ca proces separat. In practica chestia asta e mai usor de facut decat ceea ce pare in momentul in care se citesc aceste randuri. Trebuie doar sa intrii in contul de aministrator sub care se doreste sa se ruleze explorer.exe, se deschide Windows Explorer -> Meniul “Tools” -> Item-ul “Folder Options” -> Tab-ul “View” -> se bifeaza optiunea “Launch folder windows in a separate process”. Odata ce se face aceasta se poate iesi din admin. Chestia asta se poate face si folosind metoda descrisa la 1) in loc de login in admin. La alegere. Lansarea se face cel mai simplu din linie de comanda cu Start -> Run (sau combinatia de taste Win+R), unde se tasteaza urmatoarea comanda: runas /user:Admin explorer.exe, unde “Admin” este numele exact al contului de administrator din sistem. Spre exemplu, in pozele de mai sus, la mine e SaltwaterC. Pentru a nu repeta de multe ori aceasta comanda, se poate crea un mic script care sa automatizeze procesul. Acelasi “Run” ca in situatia de mai sus -> notepad, iar ca text se pune acolo:
@echo off
cls
title Explorer as Admin
runas /user:SaltwaterC explorer.exe
exit
unde SaltwaterC se inlocuieste cu numele administratorului vostru. Se salveaza fisierul ca script, nu ca fisier text, deci folositi o denumire gen admin_explorer.cmd, iar acel cmd din coada numelui este esential. Daca fisierul rezultat are iconita precum fisierele text normale, inseamna ca nu a fost salvat cum trebuie. De fiecare data cand este nevoie de Windows Explorer cu privilegii superioare, executati scriptul creat dupa metoda descrisa mai sus.
Acestea fiind spuse, chiar daca la inceput este dificil, sistemul poate deveni unul mult mai sigur si rezistent la virusare.
Atentie! Rularea Windows Explorer cu drepturi administrative genereaza urmatoarea chestie: din moment ce explorer.exe este system shell, orice aplicatie lansata din instanta de Explorer cu privilegii administrative va rula deasemenea tot cu privilegii administrative, inclusiv aplicatiile care vor fi lansate cand se deschid documente, spre exemplu Office sau HTML, deci mare atentie pentru ca exista riscul de virusare in acest caz. Este recomandat ca acest shell sa fie lansat doar pentru activitati administrative gen instalare de aplicatii, modificari in sistem, sau accesarea de fisiere protejate.
Disclaimer
If you found this page useful, consider linking to it.
Simply copy and paste the code below into your web site (Ctrl+C to copy)
It will look like this: De ce USER si NU admin




Saturday, September 8th 2007 at 12:52 am
runas /user:SaltwaterC explorer.exe
Nu folosesc Windows decât extrem de rar, dar dacă userul aici e passwordless, nu vad care e beneficiul de securitate
Adică eu fac o goangă care face ceva de genul runas /user:SaltwaterC rd /s /q %SystemRoot%, care se executa sub un user normal. Unde e securitatea ?
Saturday, September 8th 2007 at 9:06 am
Dupa ce executi comanda aia, o sa iti apara un shell window care cere parola de admin. Nu este “passwordless”. Userul este “passwordless”, adminul nu. Se vede in screenshot-ul de mai sus (ala cu Home-ul de la User Accounts). L-am lasat passwordless pentru ca oricum e neprivilegiat, si in cazul acesta sunt dezactivate in mod implicit toate login-urile remote (Security Policy in Windows care asa e default). Avand in vedere ca am “Home”, nici nu suporta chestii remote, inafara de Remote Assistance, care e OFF. Si nu imi e frica sa tin userul asa pentru ca runas echivaleaza cu su, nu cu sudo, deci nu se poate face privilege escalation. Poti sa faci cate goange vrei. Pentru a obtine drept de scriere in registrii, Program Files, Windows, etc. iti trebuie parola de administrator.
Saturday, September 8th 2007 at 4:32 pm
Ah, da, parca nici nu mergea runas daca userul sub care vrei sa rulezi o comanda n-are parola, din cate tin minte (omg, se vede lipsa mea din lumea Windows). Userul poate scrie in registry, dar numai in HKEY_CURRENT_USER si HKEY_USERS\S-x-x-ul-lui si nu mai stiu pe unde
Saturday, September 8th 2007 at 5:27 pm
I know … prin drept de scriere in registrii ma refeream la aia care pot sa puna in cap OS-ul. Maxim pica userul (registrii + profil din %appdata%) in cel mai negru caz. O sa il citez pe al nostru master oblio aici (care s-a inspirat de la gheorghe): iti trebuie mai multi ani de Linux ca sa inveti cum se utilizeaza Windows. Confirm. Pana nu am dat de iz de *nix (Linux si OS X), nu prea le aveam cu privilegii, su/sudo & shit.
Sunday, September 9th 2007 at 9:35 am
Windows mi se pare totusi trist rulat sub user neprivilegiat de catre un necunoscator, din cauza design-ului aiurea pe care il are SO-ul asta. Imagine this scenario: Ionel vine acasa vesel, cu noul lui dispozitiv plug n play. Il baga in calculator, Windows ii cere sa instaleze driver pentru el. El baga CD-ul cu drivere ce i l-au dat astia la computer shop, si vede ca nu-i merge sa puna driveru. Ce face el ? Da logout si nu mai intra el sub useru ala neprivilegiat in veci, si continua sa foloseasca Administrator pana la adanci batraneti. De ce ? Pentru ca ala “merge”, pe cand, folosing userul lui, nu a reusit sa puna un cacat de driver. Si nu merge faza cu “scrii in run”: cmd.exe /c runas /user:Administrator devmgmt.msc. Ionel nu stie asta. El stie doar cum sa intre in Windows Explorer, cum sa porneasca maneaua din Winamp si cum sa vorbeasca “pa mess”. Design-ul Windows e stricat. Userul trebuie educat inca de la instalarea Windows ce e bine si ce nu e bine, cum trebuie facute lucrurile, sau sa i se spuna dupa instalare sa RTFM, dandui-se documentatie la indemana. Ah, dar stai… daca s-ar face asta, Windows ar trece de la un SO “for everyone”, la unul doar pentru geeks, deci nu e buna ideea, pentru ca nu prea ar mai ramane SO-uri pentru marea masa. Deci tre sa avem cate un SO pentru toata lumea. Nu putem scapa de Windows sau neajunsurile lui, pentru ca am scapa si de multi useri de PC, implicit
Sunday, September 9th 2007 at 3:21 pm
Tocmai de asta am zis ca exista useri de Windows si [l]useri … fiecare se incadreaza unde vrea si unde poate. Personal mi se pare ceva mai dificil decat Linux/Mac … tre sa dau mai mult din taste …
Am vrut sa arat ca se poate, si deasemenea exista posibilitatea ca un [l]user sa citeasca ce am scris aici si sa ii vina idei. Doar poate. Nu toti ne-am nascut cu o latura de “geeks”.
Wednesday, October 31st 2007 at 7:39 pm
Cam tarziu comentariul, dar acuma am vazut blog-ul cautand motivul pt. care nu merge “runas …. explorer.exe”.
De curand am trecut si eu ca windows user (fara “l”), cu toate ca pana acuma ca [l]user un singur virus a rezistat mai mult de o ora (si remediile mele excludeau reinstalare).
Unixlust: legat de instalarea driverelor, nu stiu cum e implicit, dar la mine la lucru apare ceva de genu “please enter administrator password to install driver”. Deci cam pica faza ca incearca ca admin si ramane. Eu personal la instalarea windows-ului rulez mmc-ul ca admin si bag toate driverele.
Din cate am observat ca “user”, multe aplicatii nu sunt facute pt. asa ceva. Asta pt. ca (asta scria si intr-un articol despre UAC) marea majoritate a programatorilor ruleaza ca admin si programele le verifica asa. Deci userul (fara “l”) trebuie sa-l instaleze ca admin (nici o problema, asa ar trebui sa fie), dar cand e logat neprivilegiat, surpriza…in cel mai bun caz, lipseste doar icoana de pe desktop/start menu, adica trebuie sa-l pornesti cu dbl-click pe “.exe”. Asta am patit-o cu multe jocuri/aplicatii, inclusiv de la companii ca EA. Exemplu: Need for Speed (dar nu mai stiu daca Carbon sau Most Wanted). Deci cat timp programele nu vor merge frumos asa, nici un “support guy” (adica vecinu/prietenu “expert” in compuri) nu va recomanda asa ceva (asta daca stie).
Thursday, November 1st 2007 at 2:21 am
Oricum exista ca work-around shortcut-uri care automat sa ceara modul de rulare (implicit ca user, sau ca alt system user) … cat despre aplicatii … aia care le scriu aiurea sunt niste dobitoci. Asa cum sub Linux exista /home/user_name … asa sub Windows exista %systemroot%\Documents and Settings\user_name si mai mult … %appdata% unde se tine user data-ul de la aplicatiile care necesita fisiere de configurare si trebuie sa stocheze persistent datele (evident nu in %programfiles% pentru ca acesta e read-only pentru users). Cat despre absenta shortcut-urilor … acolo este pacatul celui care a dezvoltat setup-ul si nu a auzit de %systemroot%\Documents and Settings\All Users …
Tuesday, December 11th 2007 at 7:04 pm
[…] in episodul urmator). Chiar daca utilizez deja sistemul sub un cont de user dupa cum va povesteam aici, browserul, clientul de mail au master password care cripteaza parolele stocate in managerele […]
Thursday, December 13th 2007 at 6:36 pm
[…] macar nu mi se oferea posibilitatea de a da ‘Cancel’. Sa fie de la faptul ca rulez sub USER? Ideea e ca nenea care a gandit chestia asta da dovada de un amatorism aparte in ceea ce priveste […]
Wednesday, March 5th 2008 at 11:58 am
Va adresez si eu o rugaminte …..daca ma puteti ajuta
Pe calculatorul de la servicu aveam creat de administratorul de retea un user …..
cu care ma logam in mod curent la calculator.
sub acest user am protejat un fisier…ceva banal ..am intrat cu clik dreapta ……aproprietati..securty …deny…..
toate bune si frumoase …numai ca adm de retea mi a creat un alt user …..cu care ma loghez acum
pe celalalt l a sters ….
acum cand ma loghez cu noul user nu mai pot accesa fisierul respectiv…..imi spune acces denied:(
Cum sa procedez sa l pot accesa ….
multumec anticipat!
Wednesday, March 5th 2008 at 12:29 pm
Aici este nevoie de un cont de administrator care sa dea acces userului utilizat in prezent deoarece ACL-urile curente nu contin reguli pentru userul creat mai tarziu, deci toate drepturile asupra fisierului sunt revocate. In cazul in care un administrator nu poate adauga reguli pentru userul respectiv (sub Windows spre deosebire de UNIX administratorul nu are chiar atatea drepturi cat root-ul), atunci tot este posibila modificarea lui schimband owner-ul fisierului si anume: din acelasi tab Security se apasa butonul Advanced, tabul Owner, se alege din lista change owner to administratorul curent si se da replace la ownership. Dupa aceasta, schimbarea ACL-urilor si adaugarea drepturilor pentru user sunt posibile.