Blokada pliku i dost

Problemy dotyczące innych systemów operacyjnych
Awatar użytkownika
bagsiur
Beginner
Posty: 132
Rejestracja: 01 czerwca 2008, 22:12
Lokalizacja: Będzin

Blokada pliku i dostępu do stron www - Windows

Post autor: bagsiur »

Witam.
Mam nie lada wyzwanie, zmuszony jestem zablokować na pewnym stanowisku plik:

Kod: Zaznacz cały

C:\WINDOWS\system32\drivers\etc\hosts
Chodzi o blokadę kilku stron na stanowisku pracy, tak aby osoby które wykonują swoje obowiązki nie marnowały czasu.

Problem polega na tym, że są to osoby dość kumate (informatycy) i niestety wiedzą co i jak edytować aby uzyskać dostęp do swoich ulubionych stron. Dlatego stawiam pytanie w jaki sposób mogę definitywnie zablokować ten plik (zaawansowane udostępnianie plików nie zdaje egzaminu). Dodam też, że osoby te muszą posiadać konto administratora co utrudnia sprawę oraz dostęp do sieci pochodzi bezpośrednio od dostawcy (żadnych serwerów z Debianem pomiędzy).

Jeśli macie jakieś pomysły to piszcie :)
Awatar użytkownika
tremor
Beginner
Posty: 186
Rejestracja: 12 marca 2010, 18:20
Lokalizacja: Wrocław

Post autor: tremor »

Pierwsza myśl - napisać programik, który będzie cały czas trzymał ten plik otwarty. To może być np. usługa startująca automatycznie albo proces niewidoczny w standardowym Zarządcy Systemu a sterowany (w razie potrzeby wyłączenia) jakimś magicznym wpisem w rejestrze a uruchamiany z Run albo w jakiś inny, mniej widoczny sposób jeśli taki znasz.
fnmirk
Senior Member
Posty: 8321
Rejestracja: 03 grudnia 2007, 06:37

Post autor: fnmirk »

Są różne poziomy ustawienia praw dostępu dla administratorów systemu. Nie każdy administrator musi mieć dostęp do całego systemu.
Awatar użytkownika
bagsiur
Beginner
Posty: 132
Rejestracja: 01 czerwca 2008, 22:12
Lokalizacja: Będzin

Post autor: bagsiur »

swietna myśl tremor dzieki tobie rozwiązałem problem :) proces nazwałem svchost.exe (jest ich wiele), oraz dodałem do autostartu poprzez klucze rejestru.

Gdyby w przyszłości komuś sie przydało to podaje przykładowy kodzik takiego programu:

Kod: Zaznacz cały

#include <windows.h>
#include <string>

// nazwa klasy okna
std::string aplikacja = "program";

// ------------------- procedura zdarzeniowa okna ------------------------

LRESULT CALLBACK WindowEventProc(HWND hWindow, UINT uMsg,
                                 WPARAM wParam, LPARAM lParam){
     switch (uMsg){
         case WM_DESTROY: PostQuitMessage (0);   // kończymy program
         return 0;
         }
return DefWindowProc(hWindow, uMsg, wParam, lParam);
}

// ------------------------funkcja WinMain() ----------------------------

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR, int nCmdShow){

                       /* rejestrujemy klasę okna */
                       WNDCLASSEX KlasaOkna;
                       // wypełniamy strukturę WNDCLASSEX
                       ZeroMemory (&KlasaOkna, sizeof(WNDCLASSEX));
                       KlasaOkna.cbSize = sizeof(WNDCLASSEX);
                       KlasaOkna.hInstance = hInstance;
                       KlasaOkna.lpfnWndProc = WindowEventProc;
                       KlasaOkna.lpszClassName = aplikacja.c_str();
                       KlasaOkna.hCursor = LoadCursor(NULL, IDC_ARROW);
                       KlasaOkna.hIcon = LoadIcon(NULL, IDI_HAND);
                       KlasaOkna.hbrBackground = (HBRUSH) COLOR_WINDOW;
                       KlasaOkna.style = CS_SAVEBITS;
                       // rejestrujemy klasę okna
                       RegisterClassEx (&KlasaOkna);
                       
std::string sciezka = "C:\\WINDOWS\\system32\\drivers\\etc\\hosts";

HANDLE uchwyt = CreateFile(sciezka.c_str(), 
                    GENERIC_WRITE, 
                    0,                             //ważne dla celu misji plik nie może być współdzielony
                    NULL, 
                    OPEN_EXISTING, 
                    FILE_ATTRIBUTE_NORMAL, 
                    NULL);

/* pętla komunikatów */
MSG msgKomunikat;

while (GetMessage(&msgKomunikat, NULL, 0, 0)){
      
TranslateMessage (&msgKomunikat);
DispatchMessage (&msgKomunikat);

}

// zwracamy kod wyjścia
return static_cast<int>(msgKomunikat.wParam);
}
Awatar użytkownika
darkwater
Junior Member
Posty: 828
Rejestracja: 25 stycznia 2007, 14:01
Lokalizacja: Częstochowa

Post autor: darkwater »

Jeśli ci użytkownicy to faktycznie informatycy, takie "zabezpieczenie" co najwyżej poprawi im humor na resztę dnia. :)
Awatar użytkownika
bagsiur
Beginner
Posty: 132
Rejestracja: 01 czerwca 2008, 22:12
Lokalizacja: Będzin

Post autor: bagsiur »

Aż tak dobrzy nie są, to kobiety :p choć wiadomo że głupia bramka proxy załatwiłaby sprawę.
ODPOWIEDZ