|
Linux -
Linux
|
|
Wpisany przez Administrator
|
|
poniedziałek, 28 grudnia 2009 21:43 |
|
1. WSTĘP, ZAŁOŻENIA ================== Instrukcja dotyczy instalacji oraz konfiguracji serwera ftp o nazwie "vsftpd", przy czym założono następujące warunki: - Zabronione logowanie użytkowników anonimowych, - Dozwolone logowanie użytkowników lokalnych (posiadających założone konto w systemie), - Użytkownicy lokalni nie mogą wychodzić poza katalog domowy, przy czym wzięto pod uwagę możliwość udostępnienia wybranym użytkownikom dostępu do wybranych katalogów leżących poza katalogiem domowym, - Możliwość wychodzenia poza katalog domowy użytkownikom zdefiniowanym w osobnym pliku (z możliwością przeglądania całej struktury katalogów), - Połączenie na linii klient-serwer szyfrowane SSL,
**. Konfigurację przeprowadzono w systemie Debian 5.0.3 (2.6.26-2-686). System zainstalowany bez środowiska graficznego.
|
|
Poprawiony: wtorek, 29 grudnia 2009 01:15 |
|
Windows -
Windows
|
|
Wpisany przez Administrator
|
|
niedziela, 30 sierpnia 2009 22:21 |
|
Artykuł oraz zdjęcia stworzono na przykładzie systemów Windows XP oraz Vista. Najprawdopodobniej będą również działać w starszych produktach firmy Microsoft (Win98, Win95).
W systemach tych istnieje możliwość automatycznego zalogowania wybranego użytkownika podczas uruchamiania systemu. Znam co najmniej dwa sposoby za pomocą jakich można to zadanie zrealizować. Pierwszy to użycie polecenia "control userpasswords2", drugi zmiany w rejestrze Windows. Konto z którego dokonywane są zmiany powinno należeć do grupy administratorzy, podaną komendę można uruchomić z konta o mniejszych uprawnieniach, zostaniemy jednak poproszeni o wprowadzenie hasła administratora komputera.
"control userpasswords2"
Wciskamy przycisk Start->Uruchom, w okienku wpisujemy komendę: control userpasswords2
 
Rys.1. Konta użytkowników
Otwiera się okno "Konta użytkowników", przykładowe z systemu Windows Vista pokazano na rys.1. Okno zawiera nazwy wszystkich użytkowników w systemie. Wybieramy użytkownika dla którego ma być zrealizowane autologowanie. Odznaczamy kwadracik przy nazwie "Aby używać tego komputera, użytkownik musi wprowadzić nazwę użytkownika i hasło". Wciskamy przycisk OK. W kolejnym okienku wpisujemy hasło jakie posiada wybrane do autologowania konto. System nie sprawdza poprawności wprowadzonego hasła (można zatwierdzić błedne hasło). Utracimy jednak możliwość autologowania (zostanie wyświetlony komuniakt o błędnym haśle z prośbą o wprowadzenie poprawnego). Zatwierdzamy zmiany przyciskiem OK i można uruchomić ponownie komputer, system powinien zalogować się automatycznie na wybrane konto. Aby usunąć autologowanie ponownie wpisujemy komendę control userpasswords2 i zaznaczamy odznaczony wcześniej kwadracik.
Edycja rejestru Windows (Windows XP)
Uruchamiamy systemowy Notatnik, wpisując poniższy tekst:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] "DefaultUserName"="NAZWA UŻYTKOWNIKA" "autoadminlogon"="1" "DefaultPassword"="HASŁO UŻYTKOWNIKA"
W skopiowanym tekście zmieniamy wartości:
NAZWA_UŻYTKOWNIKA zmieniamy na nazwę użytkownika któremu chcemy przypisać autologowanie,
HASŁO_UŻYTKOWNIKA zmieniamy na hasło użytkownika któremu chcemy przypisać autologowanie.
Po tych zmianach zapisujemy plik jako zmiany.reg oraz uruchamiamy potwierdzając chęć wprowadzenia zmian do rejestru. Gdy system wyświetli komunikat o poprawnej zmianie rejestru możemy ponownie uruchomić komputer.
|
|
Poprawiony: poniedziałek, 31 sierpnia 2009 00:17 |
|
Programowanie -
Bascom
|
|
Wpisany przez Administrator
|
|
poniedziałek, 03 listopada 2008 00:40 |
|
Prosty licznik sekundowy. Do pobrania : prog_12.zip ( prog_12.bas, prog_12.hex ) Typ : pełna, darmowa Rozmiar pliku : 0.01 MBAutor : www.neTsl.net Systemy : Mikrokontroler AT90S2313 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
'Program napisany na mikrokontroler ATMEGA AT90S2313
'Prosty licznik sekundowy od zera ( 0000 ) do ( 9999 ) z skokiem co 1
'Po doliczeniu do konca zaczyna od poczatku jednak ilosc przejsc od poczatku do konca zapamietuje w osobnej
'zmiennej do podgladniecia po przycisnieciu przycisku P0
'Przetestowany na zestawie demo ( plytce testowej ) do kursu Bascom AVR - AVT3500
'W zestawie PORTB podlaczony do czterech wyswietlaczy 7-segmentowych pracujacych w trybie multipleksowym
'PORTD.0 oraz PORTD.1 jako przyciski, PORTD.2 do PORTD.6 podlaczone do tranzystorow sterujacych wlaczanie/wylaczanie
'wspolna anoda poszczegolnych wyswietlaczy 7-segmentowych ( czyli w rzeczywistosci wlacza/wylacza pojedyncza cyfre - modul )
'Schemat elektryczny zestawu na stronie www.netsl.net ( szukaj : AVT3500 )
'Autor : neTsl.net 02.11.2008
'USTAL KONFIGURACJE PORTOW
'=========================
'wszystkie porty b jako wyjscie - to te od wyswietlaczy 7-segmentowych port b to 8 wyjsc/wejsc
'7 segmentow cyfry ( modulu ) plus kropka
Config Portb = Output
'porty d dwa najmlodsze czyli przyciski (pd.0) i (pd.1) jako wejscie ( 0 ), reszta ( czyli m.in. tranzystory sterujace ledami )
'jako wyjscie ( 1 ), port d to 7 wyjsc/wejsc
Config Portd = &B1111100
'USTAL STAN SPOCZYNKOWY PORTOW
'=============================
'wpisujac ( 0 ) zalaczamy tranzystor ktory nam jest potrzebny, dwa najmlodsze bity pd.0 i pd.1 czyli przyciski, tam dajemy jedynki czyli
'podciagamy do plusa zasilania przez to beda reagowac na wcisniecie czyli dopiecie do masy
Portd = &B00000111
'na wszystkich wyjsciach portu b ustalamy ( 1 ) czyli wylaczamy ledy
Portb = &B11111111
'ZACZYNAMY
'=========
Dim Kw As Byte , A As Word , B As Byte , C As Byte , D As Byte , Migaj As Bit , P1 As Byte , P2 As Byte
Dim A2 As Byte , B2 As Byte , C2 As Byte , D2 As Byte
Config Timer0 = Timer , Prescale = 64 : Enable Interrupts : Enable Timer0
On Timer0 T1
Kw = 0 : A = 0 : B = 0 : C = 0 : D = 0 : Migaj = 0 : P1 = 0 : P2 = 0
A2 = 0 : B2 = 0 : C2 = 0 : D2 = 0
Do : Loop : End 'glowna petla
Tabela: 'potrzebna do wyswietlenia cyfr 0...9
Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144
Zwieksz:
Incr A
If A = 10 Then
A = 0
Incr B
If B = 10 Then
B = 0
Incr C
If C = 10 Then
C = 0
Incr D
If D = 10 Then
D = 0
Incr A2
If A2 = 10 Then
A2 = 0
Incr B2
If B2 = 10 Then
B2 = 0
Incr C2
If C2 = 10 Then
C2 = 0
Incr D2
If D2 = 10 Then D2 = 0
End If
End If
End If
End If
End If
End If
End If
Return
T1:
'przerwanie od timera co 4ms
'czestotliwosc kwarcu przy mikrokontrolerze 4MHz
'4MHz = 4000000 Hz czyli 4000000 razy na sekunde
'czyli 1sekunda/4000000 = 0.00000025s - tyle wynosi przebieg z kwarcu
'prescaler wlaczony na 64 ( Prescale = 64 ), czyli 0.00000025s * 64 = 0.000016s czyli 16us ( mikrosekund )
'Timer0 to licznik od 0 do 255 czyli po zliczeniu 255 takich 16us sygnalow wysyla do procesora przerwanie
'czyli w sumie to daje sygnal przerwania co 0.00408s, my chcemy dokladnie co 4ms wiec od 255 - 6 = 249 ale liczymy lacznie z
'0 wiec w sumie 250 * 16us = 0.004ms ( milisekundy )
Timer0 = 6
Incr P2
If P2 = 250 Then '250 * 0.004s to dokladnie 1s i co tyle bedzie zwiekszany licznik
P2 = 0
Gosub Zwieksz
End If
Incr P1 'zwieksz P1
If P1 = 40 Then '40 * 0.004s to dokladnie 0.16s i co tyle bedzie zaswiecana kropka
P1 = 0
Toggle Migaj 'zmien na przeciwny stan zmiennej Migaj
End If
Incr Kw : If Kw = 4 Then Kw = 0 'wybierz kolejny wyswietlacz
'OBSLUGA WYSWIETLACZY CO 4ms
'===========================
Portd = &B1111111 'wygas wyswietlacze
If Pind.0 = 1 Then
Select Case Kw
Case 0:
Portb = Lookup(a , Tabela) 'wpisz wartosci do portu b
Portd.3 = 0 'zaswiec ( wlacz ) cyfre pierwsza
Portb.7 = Migaj 'obsluga punktu migajacego
Case 1:
Portb = Lookup(b , Tabela)
Portd.4 = 0
Case 2:
Portb = Lookup(c , Tabela)
Portd.5 = 0
Case 3:
Portb = Lookup(d , Tabela)
Portd.6 = 0
End Select
Else
Select Case Kw
Case 0:
Portb = Lookup(a2 , Tabela) 'wpisz wartosci do portu b
Portd.3 = 0 'zaswiec ( wlacz ) cyfre pierwsza
Portb.7 = Migaj 'obsluga punktu migajacego
Case 1:
Portb = Lookup(b2 , Tabela)
Portd.4 = 0
Portb.7 = 0
Case 2:
Portb = Lookup(c2 , Tabela)
Portd.5 = 0
Case 3:
Portb = Lookup(d2 , Tabela)
Portd.6 = 0
End Select
End If
Return
|
|
|
Poprawiony: poniedziałek, 03 listopada 2008 01:09 |
|
Programowanie -
Zadania C++
|
|
Wpisany przez Administrator
|
|
niedziela, 01 lutego 2009 12:15 |
|
Analizator leksykalny w wersji podstawowej. Klasy znaków : identyfikatory, liczby rzeczywiste, liczby całkowite, słowa kluczowe, operatory addytywne i multiplikatywne, nawiasy, operator przypisania. Program po uruchomieniu odczytuje tekst do analizy z pliku "test.txt", wstawia do listy i dokonuje analizy.
Do pobrania również spakowana wersja z przykładowym plikiem "test.txt" i programem do uruchomienia analizator.exe
Do pobrania : analizator.zip
Wersja : 2.12Typ : pełna, GPLRozmiar pliku : 0.20 MBAutor : www.neTsl.net
|
|
Poprawiony: piątek, 01 stycznia 2010 23:11 |
|
Programowanie -
Zadania C++
|
|
Wpisany przez Administrator
|
|
sobota, 07 czerwca 2008 17:23 |
|
Ogólnie program działa w sposób następujący :
Mamy serwer i nieograniczoną liczbę klientów. Serwer wysyła do klientów dane ( czas i datę w odstępach co 5 sekund przez protokół TCP/IP ). Klient lub klienci odbierają te dane. W momencie awarii serwera – klient który pierwszy zauważy brak komunikacji z serwerem ( brak przychodzących danych ), szuka serwera i jeśli nie znajdzie sam próbuje zostać serwerem.
Konfiguracja przed skompilowaniem pliku ko.cpp :
Ustawiamy maskę adresów IP w zmiennej char ip[] = "192.168.1.";
Ustawiamy adres startowy czwartego oktetu w adresie IP – zmienna BEGIN.
Ustawiamy adres końcowy czwartego oktetu w adresie IP – zmienna END.
Uruchamiamy plik ko.out. ( można nieograniczoną ilość razy – program uruchomiony jako pierwszy zostaje pierwszym serwerem, reszta klientami – jeśli serwer zabijemy ( kill PID ) - któryś z klientów będzie chciał nim zostać. )
1.) Po uruchomieniu program początkowo szuka serwera ( skanuje po kolei adresy IP z maski, zaczynając od adresu BEGIN z czwartego oktetu i kończąc na END ). Skanowanie zaimplementowane jest w pętli for i sprawdza czy wykonanie instrukcji :
connect(sockfd1, (struct sockaddr *)&their_addr, sizeof(struct sockaddr));
zwraca błąd czy nie – jeśli zwraca błąd skanowany jest kolejny adres aż do końca.
2a.) Jeśli po przeskanowaniu wszystkich adresów IP nie znajdzie serwera ( connect za każdym razem będzie zwracał błąd ) - program próbuje przejść w stan SERWERA :
sockfd1 = socket(AF_INET, SOCK_STREAM, 0)
bind(sockfd1, (struct sockaddr *)&my_addr, sizeof(struct sockaddr))
listen(sockfd1, BACKLOG)
, nasłuchując za potencjalnym klientem. Po uzyskaniu połączenia z klientem tworzy proces-dziecko który wysyła do klienta w odstępach 5 sekundowych aktualny czas i datę :
|
|
Poprawiony: sobota, 29 sierpnia 2009 23:25 |
|
|