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 …

Control Panel De unde se face userul

Numele utilizatorului Setarea permisiunilor si crearea contului

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

21 thoughts on “De ce USER si NU admin

  1. unixlust

    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 ?

  2. SaltwaterC Post author

    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.

  3. unixlust

    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 🙂

  4. SaltwaterC Post author

    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.

  5. unixlust

    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 🙂

  6. SaltwaterC Post author

    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”.

  7. Matei

    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).

  8. SaltwaterC Post author

    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 …

  9. Pingback: Saltwater’s Blog » Rularea aplicatiilor in mod protejat accesului fizic

  10. Pingback: Saltwater’s Blog » “Automatic Restart” si “Lock Workstation”

  11. Ionut

    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!

  12. SaltwaterC Post author

    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.

  13. gicu

    Am urmatoarea problema.
    Avem o retea cu mai multe computere cu Win XP de care sunt nevoit sa am grije, desi nu-mi doream “promovarea asta” dar deh, criza financiara.
    Fiecare computer are user de administrator parolat si user al utilizatorului. Sistemele au BIOS parolat si ordinea de bootare HDD only. Unul dintre ei a reusit sa-si instaleze si sa-si dezinstaleze programe de downloadat.
    Cum a reusit asta si ce pot face ca acest lucru sa nu se mai repete?

  14. SaltwaterC Post author

    Depinde ce inseamna “sa instaleze” programe de downloadat. In principiu daca nu se foloseste un exploit local pentru obtinerea de privilegii elevate, anumite aplicatii pentru downloadat se pot pur si simplu dezarhiva si folosi. Nu au nevoie de acces la registrul central … este suficient sa scrie in registrul userului, sau chiar mai mult, sa nu foloseasca registrul deloc si sa foloseasca un fisier.

    In alta ordine de idei, cea mai buna restrictie pentru aceste chestii cred ca se poate pune din firewall la nivel de gateway.

  15. baree

    salut, calculatorul cu XP (fara retea) din camin a rulat mult timp ca admin si toate documentele au fost create ca admin si salvate de fiecare pe D: in folderul propriu.
    la un moment dat pt siguranta le am facut useri personali cu profilul USER doar si acum nu isi mai pot modifica documentele care daca nu ai user ADMINISTRATORS nu faci decat sa le vezi si e deranjant sa si salveze cu alt nume documentele dupa o mica modificare.
    am incercat cu drepturi depline sa scot read only de pe foldere dar nu se modifica proprietatea ca efect.
    cum pot rezolva?
    multumesc.

  16. SaltwaterC Post author

    Problema ta sta la permisiunile NTFS (ACL), nu in chestia aceea cu ‘Read only’ ce e mai mult frectie la picior de lemn. NTFS pe langa multe altele a adus un sistem avansat de permisiuni ce se pot seta in functie de grup sau utilizator. Cum spuneam si mai sus, este intradevar un OS multiuser spre deosebire de 9x/Me si FAT32.

    Daca este vorba de XP Professional, atunci activeaza tab-ul ‘Security’ de la file/folder ‘Properties’ dezactivand optiunea ‘Simple file sharing’ din ‘Folder Options’ (Explorer -> Tools -> Folder Options -> tab-ul ‘View’). Este ultima optiune din ‘View’. Daca este vorba de XP Home, atunci activarea presupune instalarea unei chestii. Am scris aici despre aceast aspect: http://saltwaterc.net/tech/security-tab-in-windows-explorer-windows-xp-home.html

    In alta ordine de idei, permisiunile se pot seta individual per fisier, sau se pot da directorului care le contine si sa setezi mostenirea permisiunilor. Deasemenea, acestea le poti da per user, sau grupului users. Un articol detaliat despre NTFS si ACL poti gasi aici: http://www.windowsitlibrary.com/Content/592/1.html

  17. Stefan Velescu

    Pe cind un ghid complet si nu numai discutii pentru cei destepti? Eventual un video ca sa vada tot prostu si cum e cu drepturile alea de acces si cam tot.

  18. SaltwaterC Post author

    Ar merge, dar subsemnatul n-are `skill` la facut video. Cat despre un ghid complet – destul de dificil. Subiectul este unul destul de complex si cere vreo cateva cunostinte de baza, mai ales pe partea setarii ACL-urilor (Access Control List, defineste permisiunile la nivel de user si grup) la nivel de NTFS.

  19. ionutz

    salvez datele de pe un hard pe calcu meu si nu pot deschide userul pentru a salva my doc si desku.

  20. SaltwaterC Post author

    Directorul unui alt utilizator are permisiuni restrictive în mod implicit, mai ales dacă ești autentificat cu un utilizator neprivilegiat. În Windows XP chiar și utilizatorii din grupul Administrator pot avea această problemă. Rezolvarea esye să iei ownership-ul directorului pe care vrei să-l accesezi folosind un cont de administrator. La directorul de acces Properties » Security » Advanced … mai departe nu mai știu exact din memorie. Pe undeva pe la al 2-lea tab este o bifă pe care o poți pune la “take ownership” și poți forța schimbarea permisiunilor fără a edita manual lista de permisiuni (alternativa). Ar trebui să existe / întrebe ceva pe acolo și de aplicarea recursivă a operației. Nu pot da poze și indicații precise pentru că vorbesc din memorie și nu am un Windows la dispoziție pe moment.

Leave a Reply

Your email address will not be published. Required fields are marked *