Konto zwykłego użytkownika w systemie Windows – nawyki i sztuczki przydatne podczas codziennej pracy

Wbrew obiegowym opiniom system Windows nie jest wcale tak bardzo niebezpieczny i podatny na działanie wirusów jak mogłoby to się wydawać. Jedną z przyczyn takiego postrzegania “windowsów” są raczej niefortunnie dobrane standardowe ustawienia systemu (NT4, 2000, XP) - mam tutaj na myśli tworzenie standardowo kont z uprawnieniami administracyjnymi zamiast tylko jednego konta administratora a do zwykłej pracy kont ograniczonych - tak jak jest to w systemach uniksopodobnych. Praca na koncie z ograniczeniami w bardzo znaczącym stopniu podnosi bezpieczeństwo, ponieważ nawet jeżeli zawiedzie program antywirusowy czy firewall i “przepuści” plik z wirusem, to wirus ten nie poczyni żadnych szkód ponieważ nie będzie mógł zainstalować się w systemie. Sam obserwowałem takie przypadki, gdy twórcy wirusa ewidentnie nie uwzględnili w założeniach projektowych uruchamiania swojego dzieła na koncie z ograniczeniami i mogłem podziwiać efektowną serię komunikatów o błędach która kończyła się zamknięciem procesu “wirusa”.

Niestety wszelkie zagadnienia związane z bezpieczeństwem pociągają za sobą zmniejszenie szybkości działania, efektywności, wygody użytkowania etc.

Balans

Idealnie byłoby wypracować rozwiązania, które są zarówno bezpieczne jak i szybkie i przyjemne do użycia. Postaram się opisać tutaj szereg chwytów, które sam stosuję korzystając na co dzień z ograniczonego konta w systemie Windows. Przybliżają one elastyczność i wygodę pracy na koncie z uprawnieniami administracyjnymi zachowując jednocześnie bezpieczeństwo na koncie zwykłego użytkownika (grupa “Użytkownicy” w menedżerze lusrmgr.msc).

Sztuczka podstawowa to umieszczenie najlepiej na pulpicie lub w innym wygodnym miejscu skrótu do wiersza poleceń (program cmd.exe) i uruchomienie go klikając prawym przyciskiem myszy opcją “Uruchom jako” , a następnie wybranie administratora. Uzyskujemy w ten sposób wiersz poleceń działający z uprawnieniami administratora (odpowiednik uniksowego su). Wiele z moich sztuczek opiera się właśnie o wydanie komend z wiersza poleceń. Polecam zadbać o możliwość uzupełniania nazw plików i folderów tabulatorem - w systemie XP można to ustawić np. narzędziem Microsoft Tweak UI.

1. Dostęp do plików

Sporą uciążliwością konta zwykłego użytkownika jest brak możliwości tworzenia folderów na korzeniu głównym partycji oraz w innych miejscach. Wiąże się to z brakiem uprawnień do modyfikacji dla grupy użytkowników. Wypracowałem sobie takie rozwiązania tego problemu: w sytuacji gdy potrzebuję zmodyfikować podkatalog w katalogu systemowym albo utworzyć katalog w korzeniu głównym uruchamiam sobie menedżer plików klikając prawym przyciskiem myszy i wybierając opcję “Uruchom jako”. W miejscach do których wolałbym mieć jednak bezpośrednio swobodny dostęp dodaję uprawnienia pełnej kontroli dla grupy użytkowników. Ponieważ graficzny interfejs zarządzania uprawnieniami plików w systemie NT może moim zdaniem przyprawić o ból głowy - polecam zastosowanie tego polecenia:

cacls (nazwa_katalogu) /t /e /g Users:F

Powoduje ono dodanie uprawnień do pełnej modyfikacji dla podanego katalogu i wszystkich znajdujących się w nim plików i podkatalogów. Zamiast grupy Users można oczywiście podać nazwę samego użytkownika. To bardzo ważne polecenie które zdarza mi się dość często wykonywać. Warto je sobie zapisać i mieć pod ręką dopóki nie zapamięta się składni.

Ponieważ autorzy wielu programów (niestety) nie przewidzieli, że ich produkty będą uruchamiane na koncie ograniczonym a dostęp do folderu Program Files z takiego konta jest tylko do odczytu, to zdarzają się osobliwe błędy. Proponuję utworzyć sobie w katalogu Program Files specjalny katalog (ja go nazwałem UserAccess) i potraktować go powyższym poleceniem. Wszelkie nowe programy, które przewidujemy do działania na ograniczonym koncie sugeruję instalować właśnie w takim katalogu. Programy często potrzebują zapisywać sobie jakieś dane w trakcie działania w katalogu w którym są instalowane, dzięki tej sztuczce zwiększamy prawdopodobieństwo, że aplikacja będzie działała poprawnie na ograniczonym koncie.

2. Widoczność programów w Menu Start

Przyznam, że moim zdaniem jest to największa uciążliwość pracy na koncie ograniczonym. Zdarzają się tutaj 2 przypadki - albo zainstalowany program nie jest widoczny w menu start konta użytkownika, albo jeśli nawet jest widoczny to skrót nie działa ponieważ nie ma uprawnień dla użytkowników. Pierwszą czynnością którą polecam wykonać to potraktowanie powyższym poleceniem cacls całego folderu All Users\Menu Start. Dzięki temu jako zwykły użytkownik będzie można wprowadzać dowolne modyfikacje w menu start

Kolejną czynnością jest upewnienie się, że wpisy skrótów w menu start dla programu znajdują się właśnie w All Users a nie w katalogu Administrator. Ponieważ, aby zainstalować program należy jego instalator uruchomić z uprawnieniami administracyjnymi, to w wielu przypadkach wpisy do menu start dopisują się właśnie dla administratora przez co są niewidoczne dla innych użytkowników. Jeżeli dla All Users\Menu Start nadaliśmy już pełne uprawnienia dla użytkowników to proponuję przenosić wpisy z menu start administratora do All Users z wiersza poleceń (osobiście uważam, że tak jest łatwiej bo jest mniej klikania). Przechodzimy do menu start administratora poleceniem

pushd "c:\Documents and Settings\Administrator\Menu Start\Programy"

a następnie wydajemy polecenie

move (folder_programu_do_przeniesienia) "..\..\..\All Users\Menu Start\Programy"

Przy wpisywaniu tych długich ścieżek posługujemy się oczywiście autouzupełnianiem za pomocą tabulatora. Przechodzenie do katalogów komendą pushd powoduje, że możemy powrócić do poprzedniego folderu komendą popd.

Kilka słów o widoczności wpisów w menu start. To, co widzimy klikając Start/Programy, jest “widokiem” będącym teoriomnogościową sumą zawartości katalogu Programy z All Users i katalogu Programy z bieżącego użytkownika. Dlatego warto zadbać, aby wszelkie wpisy dla menu start znajdowały się jednak w All Users.

3. Konfigurowanie systemu, panel sterowania

Co prawda mechanizm uruchamiania programów z innymi uprawnieniami jest bardzo podobny do tego znanego z linuksa, to jednak są elementy systemu których w ten sposób uruchomić się nie da. Wynika to z faktu, iż nie da się w ten sposób uruchomić po raz drugi instancji powłoki systemowej - programu explorer.exe (jeden proces explorer.exe działa dla bieżącego użytkownika, z jakichś powodów system odmawia uruchomienia powłoki po raz drugi dla kogoś innego). Powłoka systemowa odpowiada za wyświetlanie okienek. Nie da się zatem uruchomić tych elementów, których “oprawą” są okienka - czyli np Panel sterowania, menedżer połączeń sieciowych, wszelkie programy które instalują się jako rozszerzenia powłoki.

Rozwiązaniem na to jest bezpośrednie wywoływanie apletów panelu sterowania z linii poleceń (administracyjnej oczywiście). Polecam do tego ten spis komend wiersza poleceń. Przykładowo jeżeli chcemy wyświetlić narzędzie usuwania programów - uruchamiamy z linii poleceń appwiz.cpl.

Niestety do zarządzania opcjami połączeń sieciowych konieczne jest pełne zalogowanie się na koncie administratora. Możemy jednak ominąć przynajmniej jedno ograniczenie - na włączanie i wyłączanie połączeń sieciowych. W tym celu wystarczy w narzędziu lusrmgr.msc dodać nasze ograniczone konto użytkownika do grupy konfiguracji sieci (ta możliwość pojawiła się chyba w XP SP3, bo jestem pewien, że wcześniej nie było tej grupy).

[EDIT - 14 października 2009]

Ponieważ treść tego wpisu dotyczy głównie Windows XP, brakuje wyjaśnienia czym jest i jak działa w tym kontekście mechanizm UAC w systemie Windows Vista oraz Windows 7. Odsyłam w tym miejscu do wpisu na blogu Joanny Rutkowskiej gdzie zawarte są te właśnie informacje jak również dużo bardziej wnikliwe rozważania na temat bezpieczeństwa kont użytkownika w Windows Vista.