Archiwum kategorii ‘Wdrożenia’

SAMBA + rozproszone bazy danych i problem z blokowaniem dostępu do plików

Przeglądając polskie forum Ubuntu natknąłem się na taki wątek http://forum.ubuntu.pl/showthread.php?t=113578 . Pamiętam, że sam się jakiś czas z tym męczyłem.
Programy DOSowe powoli wychodzą już z użytku jednak z doświadczenia wiem wiem, że są one wciąż popularne a więc warto opisać jak rozwiązać ten problem. Może komuś jeszcze się przyda.

W celu prawidłowego udostępniania zasobów programów DOSowych dla ludzi pracujących na nich jednocześnie musimy dodać taki udział do configa samby :

[dos] # nazwa udziału
comment = dos # jak wyżej
path = /home/system1/dos # ścieżka do programów dosowych
public = yes # to możemy zmienić wedle uznania
writable = yes
guest ok = yes # to możemy zmienić wedle uznania
public = yes # to możemy zmienić wedle uznania
printable = no
oplocks = False # ustawienia potrzebne do prawidłowej pracy na rozproszonych bazach danych
force user = nobody # ustawienia potrzebne do prawidłowej pracy na rozproszonych bazach danych
level2 oplocks = False # ustawienia potrzebne do prawidłowej pracy na rozproszonych bazach danych
veto oplock files = /*.DBF/*.dbf/ # tutaj ustawiamy najważniejsze pliki bazy, w moim przypadku są to pliki *.DBF
create mode = 0777 # ustawienia potrzebne do prawidłowej pracy na rozproszonych bazach danych
directory mode = 0777 # ustawienia potrzebne do prawidłowej pracy na rozproszonych bazach danych

Restart samby i już można pracować z wielu komputerów.

Mapowanie portów LPT jako użytkownik konta z ograniczeniami

W jednym z wpisów Grzegorz zwrócił uwagę na problem występujący z mapowaniem portów LPT gdy jesteśmy zalogowani jako użytkownik z ograniczeniami.
Takie zachowanie występuje, ponieważ tylko członek grupy Administratorzy może użyć polecenia net use do zamapowania portu LPT dla lokalnego (sprzętowego) portu równoległego na drukarkę sieciową. To zachowanie zaprojektowano w celu zwiększenia bezpieczeństwa. Udało mi się jednak znaleźć parę rozwiązań tego problemu :

Rozwiązanie numer 1:
Polecenie RUNAS czyli coś jak SUDO z linuksa. Wymaga podania hasła podczas mapowania drukarki ale działa bardzo dobrze
Start > uruchom > cmd >
runus /user:nazwa_komputera_lokalnego\administrator "net use lpt1 \\192.168.0.1\hp"

Rozwiązanie numer 2:
Jeśli używany program może drukować na porcie LPT2 lub LPT3, użyj polecenia net use w celu zamapowania drukarki sieciowej na port LPT2 lub LPT3. Większość komputerów nie ma fizycznych portów LPT2 i LPT3, więc użytkownik niebędący administratorem może zamapować port LPT2 lub LPT3 na drukarkę sieciową.

Rozwiązanie numer 3:
Narzędzie devcon które możemy pobrać z tej strony
Po ściągnięciu i wypakowaniu najlepiej do C:\Temp pojawią się dwa katalogi dla różnych architektur, większość powinna wybrać katalog i386, wchodzimy do odpowiedniej i plik devcon.exe kopiujemy do C:\windows\system32\
Start > uruchom > cmd > devcon findall ACPI\PNP*
i odnajdujemy port LPT, pewnie będzie to ACPI\PNP0401, jeżeli tak to wpisujemy
devcon disable *PNP0401*
i od tej pory zwykli użytkownicy mogą mapować port LPT1.

Rozwiązanie 4:
SUDOWIN, jak bliżej się temu przyjrzę to opiszę instalacji i używanie tego programu pod windowsem XP.

Przydatne linki:
Włączanie i korzystanie z polecenia „Uruchom jako” podczas uruchamiania programów w systemie Windows
http://www.searchengines.pl/Noadmin-Ograniczanie-uprawnien-t94343.html
Mapowanie portów LPT przy pomocy NET USE

Dodawanie nowego konta użytkownika w Windows 2003

Przy pierwszym uruchamianiu Windowsa 2003 nie pojawi się menu dodawania nowych użytkowników również nie ma co go szukać w panelu sterowania. Trochę dziwne jest to że dodanie nowych userów wymaga kombinowania ale najważniejsze że można to w prosty sposób zrobić :

Klikamy na START > uruchom > i wpisujemy to :
rundll32.exe netplwiz.dll,UsersRunDll

Można również zrobić sobie skrót na pulpicie wpisując w Lokalizacji elementu powyższe polecenie.

Free Image Hosting at www.ImageShack.us

Aby skorzystać z bardziej zaawansowanej konfiguracji wykorzystaj aplet lusrmgr.msc, poprzez wywołanie go z okienka Uruchom.

Operating system directive CreateFiles failed

Operating system directive CreateFiles failed to błąd informujący nas o braku możliwości modyfikacji i dostępu do jakiś folderów, plików czy samej bazy danych. Pojawia się on w sytuacji gdy baza znajduje się na tym samym komputerze co serwer terminali z którym się łączymy.

Free Image Hosting at www.ImageShack.us

Rozwiązaniem jest nadanie prawa PEŁNEJ KONTROLI dla folderów z Firebirdem, programem do obsługi bazy oraz do samej bazy. Dla programu Veritum są to katalogi C:\Program Files\Firebird , C:\Program Files\System-1 , C:\Program Files\Veritum oraz katalogu z bazą danych.

Free Image Hosting at www.ImageShack.us

Warto też dodać uprawnienia dla pliku c:\PDOXUSRS.NET

EDIT
niezbędne jest też ustawienie aliasu razem z adresem IP, gdy ip serwera terminali to 192.168.0.100 to ustawiamy alias
192.168.0.100:c:\baza\system-1.ib
chociaż łączymy się z bazą tak jakbyśmy siedzieli na tym komputerze

Rozwiązanie problemu : programy wymagające różnych formatów daty

Często zdarza się tak, że programy bankowe oraz programy finansowe wymagają różnych formatów daty. Dla jednego programu format dd.MM.rrrr jest idealny a dla drugiego jest on zupełnie niezrozumiały i powoduje wysypywanie się programów lub liczne błędy. Ręczne zmienianie formatów daty wydaje się dobrym rozwiązaniem ale zbyt głupim żeby je na co dzień stosować ;] Pomijam już fakt że jest to męczące i może okazać się nie do przeskoczenia dla zwykłych pań księgowych. O wiele prościej można to zrobić podczepiając odpowiedni wpis rejestru przed wykonaniem programu i o tym właśnie chciałem dzisiaj napisać.

Regedit :
Regedit jest edytorem rejestru Windows działającym w trybie graficznym, instalowanym wraz z systemem Windows. Ze względu na niebezpieczeństwa wynikające z nieumiejętnej modyfikacji rejestru oraz brak możliwości cofania zmian Regedit jest przeznaczony dla zaawansowanych użytkowników systemu.

Zaczynamy od odnalezienia odpowiedniego wpisu :
1. Start > uruchom > regedit
Free Image Hosting at www.ImageShack.us

2. Przechodzimy do wpisu HKEY_Current_USER\Control Panel\International
lub wybieramy EDYCJA > Szukaj > sShortDate
Free Image Hosting at www.ImageShack.us

3.Jeżeli odnaleźliśmy interesujący nas wpis wybieramy Plik > Eksportuj..
i zapisujemy plik *.reg
Free Image Hosting at www.ImageShack.us

4. Przechodzimy do lokalizacji gdzie znajduje się plik *.reg i robimy jego kopię. Jedną kopię nazywamy jak program księgowy ( dla mnie będzie to veritum.reg ) a drugą tak jak program bankowy lub po prostu bank.reg . Klikamy prawym przyciskiem na pliku bank.reg i wybieramy EDYTUJ. Odnajdujemy wpis sShortDate i zmieniamy jego zawartość na taką jaka nas interesuje. Z drugim plikiem postępujemy identycznie.

5. Na pulpicie tworzymy Nowy plik tekstowy i zmieniamy jego nazwę na np: Veritum.bat
Edytujemy go i wpisujemy :

regedit /s c:\lokalizacja\pliku\veritum.reg
"c:\Program files\ścieżka\do\prorgamu.exe"

Dla banku podobnie

regedit /s c:\lokalizacja\pliku\bank.reg
"c:\Program files\ścieżka\do\prorgamu\bankowego.exe"

od tego momentu program będzie uruchamiał się z odpowiednimi dla niego ustawieniami formatu daty, jednak trzeba pamiętać że tylko jeden taki program może pracować w danym momencie.

Windows XP jako Serwer Terminali

W dzisiejszym wpisie chciałem pokazać ciekawą sztuczkę z Windowsem XP która pozwala nam na odpalenie w pełni funkcjonalnego serwera Terminali który jest dostępny np w Windowsie 2003 Standard Serwer i lepszych wersjach. Ciekawe czy to też na SBSach działa które tak samo jak XP mają wyłączoną obsługę połączeń terminalowych dla więcej niż 1 sesji. XP na jakim to testowałem posiadał dodatek SP2, kompilacja 2600 oraz jest wersją OEM. Nie wnikam czy to legalnie i zgodnie z umową licencyjną chociaż ta od XP mówi o maksymalnie 10 połączeniach (tak przy okazji to strasznie chore i głupie są umowy licencyjne microsoftu).

Zaczynamy:
Odpalamy usługę połączeń terminalowych:
Panel sterowania > System > Zdalny > Pulpit zdalny > Zezwalaj użytkownikom na zdalne łączenie się z tym komputerem

Dodajemy zezwolenia na połączenia wielu sesji na raz
Start > Uruchom > regedit > i teraz szukamy następującego wpisu
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Licensing Core
następnie dodajemy nowy wpis typu DWORD o nazwie EnableConcurrentSessions. Edytujemy go i zmieniamy jego wartość z 0 na 1.

Otwieramy Edytorze Polityki Grupowej
Start > uruchom > gpedit.msc a następnie szukamy wpisu :
Zasady Komputer Lokalny > Konfiguracja Komputera > Szablony administracyjne > Składniki Systemu Windows > Usługi terminalowe i tam odnajdujemy 2 pozycje :
Zezwalaj użytkownikom na zdalne łączenie się przy użyciu usług terminalowych ustawiamy na WŁĄCZ
Ogranicz liczbę połączeń WŁĄCZ oraz ustalamy ile połączeń ogólnie chcemy obsługiwać

Przed wykonaniem kolejnego kroku konieczne będzie zabezpieczenie sobie pliku C:\Windows\System32\termsrv.dll . Najlepiej skopiować go sobie gdzieś na boku. Następnie pobieramy termsrv.zip ( alternatywny adres gdyby ten pierwszy nie działał ) i zapisujemy sobie gdzieś, np na pulpicie. Restartujemy komputer i pod czas startowania komputera a tuż przed startem Windowsa naciskamy F8 i przechodzimy do Trybu Awaryjnego bez obsługi sieci i podmieniamy plik C:\Windows\System32\termsrv.dll na ten który przed chwilą ściągnęliśmy. Restart windowsa i odpalamy w normalnym trybie.

Po zalogowaniu się jakiegoś użytkownika do systemu i wylogowaniu dostajemy w pełni działający serwer terminali ;] Nie napisałem tego na początku ale to chyba oczywiste jest że nie ponoszę odpowiedzialności za szkody wyrządzone tymi modyfikacjami.

Dodatki
Komunikat o błędzie: Nie możesz się zalogować z powodu ograniczeń konta
Przyczyna:
To zachowanie może wystąpić, jeśli konto używane do połączenia ma puste hasło. Połączeń Pulpitu zdalnego nie można nawiązywać za pomocą konta z pustym hasłem. Można to wyłączyć ale dla bezpieczeństwa lepiej ustawić hasło niż bawić się w wyłączanie zabezpieczeń windowsa.

Zezwalanie użytkownikom na zdalne logowanie: Panel sterownia > Narzędzia administracyjne > Zarządzanie komputerem > Narzędzia systemowe > Użytkownicy i grupy lokalne > Użytkownicy > Klikamy na wybranego usera 2 razy > Zakładka CZŁONEK GRUPY > DODAJ > Zaawansowane > Znajdź teraz > i dodajemy Użytkownicy pulpitu zdalnego

Jeżeli mimo powyższych kroków nie możemy połączyć się z naszym serwerem terminali to polecałbym dodanie usługi udostępniania połączenia terminalowego w windowsowym firewallu ;]

Innym ciekawym rozwiązaniem jest XP Unlimited. Nie miałem okazji go testować ale wygląda zachęcająco i wydaje się dużo tańszy niż kupno licencji dla terminali i samego windowsa 2003 ss. więcej pod tymi adresami http://www.xpunlimited.com/ http://www.infotex.com.pl/index.php?option=com_content&task=view&id=19&Itemid=3

Podobno w XP SP1 i bez SP dało się to zrobić bez podmianki plików i edycji rejestru. Dopiero SP2 ograniczyło to.Ktoś jest w stanie to potwierdzić ?

Migracja z Novell Netware na Ubuntu Server 8.04LTS

W firmie P. stary wysłużony Novell Netware miał przejść na emeryturę a na jego miejsce miał przyjść Ubuntu Server. Novell pełnił rolę serwera plików dla programów DOSowych. Migracja w sumie przeszła bez problemów po za małym problemem, ubuntu nie rozpoznawało systemu plików Novella. Z braku czasu nie szukałem rozwiązania i przerzuciłem dane przez sieć ale jakby ktoś znał sposób na montowanie partycji novellowych pod ubuntu to byłbym wdzięczny.

Rola jaką pełni Ubuntu to:
* serwer plików dla programów DOSowych (samba)
* serwer plików (samba)
* serwer FTP (vsftpd)
* serwer SSH (open-ssh)
* backup danych
* serwer bazodanowy (FireBirda)

Instalacja i konfigi :
1) Serwer plików
sudo apt-get install samba
Programy DOSowe korzystające z rozproszonych baz danych do poprawnej pracy w sieci potrzebują odpowiednich ustawień Samby, przykładowy plik konfiguracyjny :

[global]
workgroup = firma
netbios name = firebird
announce as = NT Server
encrypt passwords = yes
local master = no
os level = 99
short preserver case = yes
passwd program = /usr/bin/passwd %u
smb passwd file = /usr/local/samba/private/smbpasswd
unix password sync = yes
security = share
domain master = no
domain logons = no
public = yes
guest ok = yes
master browse = yes

[homes]
browseable = yes
writable = yes
oplocks = False
level2 oplocks = False
create mode = 0777
directory mode = 0777
veto oplock files = /*.DBF/*.dbf/

[SYSTEM1]
comment = katalog wspolny nasz sieciowy
path = /home/system1
public = yes
writable = yes
guest ok = yes
public = yes
printable = no
oplocks = False
force user = nobody
level2 oplocks = False
veto oplock files = /*.DBF/*.dbf/
create mode = 0777
directory mode = 0777

[dos]
comment = dos
path = /home/system1/dos
public = yes
writable = yes
guest ok = yes
public = yes
printable = no
oplocks = False
force user = nobody
level2 oplocks = False
veto oplock files = /*.DBF/*.dbf/
create mode = 0777
directory mode = 0777

smb.conf
warto dać chmod -R 777 na katalog z programami dosowymi

2)Serwer FTP
sudo apt-get install vsftpd

# Ustawiamy tutaj, z poziomu jakiego użytkownika ma być uruchamiany nasz serwer:
nopriv_user=ftp
run_as_launching_user=NO

#ogranicza transfer
#local_max_rate=11500

# Uruchomienie serwera w trybie standalone. Jeżeli chcemy aby nasz vsftpd był‚
# uruchamiany w trybie inetd, rezygnujemy z tej opcji, ponieważ domyślnie jest
# ona ustawiona na "NO":
listen=YES

# Definiujemy, tutaj na jakim porcie ma nasłuchiwał serwer (domyślnie jest to port 21):
listen_port=21

# Zabronienie logowania anonimowych użytkowników:
anonymous_enable=NO

# Zezwolenie logowania dla lokalnych użytkowników
local_enable=YES

# Pozwolenie do zapisu we własnym katalogu
write_enable=YES

# Umask (022 jest używany przez większość serwerów ftp)
local_umask=022

# Włączenie logowania
xferlog_enable=YES

# Ścieżka do pliku z logami
xferlog_file=/var/log/xferlog.log

# Logi w formacie xferlog (jest wykorzystywany m.in. przez wu-ftpd)
xferlog_std_format=YES

# Maksymalna liczba połączonych użytkowników
max_clients=5

# Maksymalna liczba użyktowników mogących się poąłczyć z tego samego adresu IP
max_per_ip=2

# Banner, który będzie wyświetlany przy każdym połączeniu z serwerem
ftpd_banner=GRSecGRadm

# Userzy nie mogą wychodzić poza swój katalog domowy
chroot_local_user=YES

# Lista użytkowników, którzy mogą wychodzią poza swój katalog domowy,
# musisz utworzyć ten plik.
# np: touch /var/chroot/vsftpd/vsftpd.chroot_list
# Dodanie użytkownika odbywa się poprzez dopisanie nazwy usera do tego pliku.
# np: echo "bartek" >> /var/chroot/vsftpd/vsftpd.chroot_list
#chroot_list_enable=YES
#chroot_list_file=/var/chroot/vsftpd/vsftpd.chroot_list

vsftpd.conf

3)Firebird
http://lazowski.wordpress.com/2008/02/04/instalacja-firebirda-na-ubuntu/

4)Backup danych
http://lazowski.wordpress.com/2008/01/06/backup-po-mojemu/

Linki :
http://www.ubuntu.com/products/whatisubuntu/serveredition
http://us3.samba.org/samba/
http://vsftpd.beasts.org/
http://www.openssh.org/
http://www.firebirdsql.org/

Problem z polskimi literami i prawym altem w połączeniu terminalowym.

Sytuacja wyglądała następująco : brak polskich liter lub polskie litery działały kiedy chciały, alt prawy nagle stawał się altem lewym i np ALT+O otwierało nowy dokument zamiast dawać Ó.

Aby rozwiązać ten problem trzeba przestawić w ustawieniach połączenia terminalowego > zasobach zdalnych > klawiatura > Zastosuj kombinację klawiszy Windows na komputerze lokalnym.

Free Image Hosting at www.ImageShack.us
Oczywiście klawiatura na lokalnym i zdalnym musi być ustawiona na Polski Programisty.

Problem z mapowaniem drukarek w połączeniu terminalowym – windows 2003 ss

Ostatnio miałem taki problem przy połączeniu terminalowym że nie były mapowane drukarki na USB lub były mapowane tylko gdy były zmapowane w sieci z innego komputera.

Przy okazji dowiedziałem się że niektóre drukarki nie wspierdają mapowania w połączeniach terminalowych. Dla drukarek HP można to sprawdzić w OPISIE PRODUKTU w sekcji Sieci i łączność :  http://h10010.www1.hp.com/wwpc/pl/pl/sm/WF06b/1090051-1090135-1090415-1090415-12735528-12735530-77716649.html?jumpid=oc_R1002_PLPLC-001_HP%20LaserJet%20P2015%20Printer〈=pl&cc=pl

Rozwiązanie problemu dla drukarek HP ( z innymi pewnie też to zadziała) :

1) Wykonujemy następujące czynności na maszynie kliencie

2) Kliknij przycisk Start, kliknij polecenie Uruchom, wpisz polecenie regedit, a następnie kliknij przycisk OK.

3) Znajdź, a następnie kliknij następujący klucz rejestru:

HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default\AddIns\RDPDR

4) W menu Edycja wskaż polecenie Nowy, a następnie kliknij polecenie Wartość DWORD.

5) Wpisz tekst FilterQueueType i naciśnij klawisz ENTER.

6) W menu Edycja kliknij polecenie Modyfikuj.

7) Wpisz tekst FFFFFFFF i kliknij przycisk OK.

Dzięki temu można przekierować wszystkie porty na komputerze klienckim.

I teraz poniższe kroki lub przechodzimy dalej ->

Aby obejść ten problem na komputerze klienckim, do którego podłączone jest wielofunkcyjne urządzenie drukujące, należy zmienić port, którego używa wielofunkcyjne urządzenie drukujące, z DOT4 na LPT.

Na przykład w celu skonfigurowania wielofunkcyjnego urządzenia drukującego, tak aby korzystało z portu LPT na komputerze z systemem Windows XP, należy wykonać następujące czynności:

1. W Panelu sterowania otwórz aplet Drukarki i faksy.
2. Kliknij prawym przyciskiem myszy drukarkę lokalną, która nie została przekierowana, a następnie kliknij polecenie Właściwości.
3. Kliknij kartę Porty, kliknij port LPT, a następnie kliknij przycisk Zastosuj.Drukarka powinna być teraz wyświetlana obok tego portu.
4. Zamknij okno Właściwości drukarki i połącz się ponownie przy użyciu pulpitu zdalnego.

-> DALEJ

1) łączymy się terminalowo jako administrator

2)  ściągamy sterowniki ze strony HP

3) odnajdujemy instalkę ze sterownikami na dysku i rozpakowujemy jej zawartość na dysk

4) Start > drukarki i faksy > dodaj drukarkę >  dalej > drukarka lokalna > dalej > Użyj następującego portu > szukamy wolnego portu maszyny z której się łączymy > dalej > z dysku > i szukamy rozpakowanej instalki z punktu 2 > dalej > dalej > dalej..itd

5) jak strona testowa przejdzie to bardzo dobrze;]

Mam jeszcze jeden mały problem z mapowaniem portu. Po wylogowaniu z połączenia terminalowego drukarka przełącza się na “TS INNACTIVE PORT” i nie chce drukwoać, trzeba ręcznie ją znowu przestawiać na jakiś port maszyny do której jest podłączona drukarka. Tymczasowe rozwiązanie jest takie że klikamy na X, wychodząc bez wylogowywania wtedy zapamiętuje ustawienia.

źródło

http://support.microsoft.com/kb/302361/pl

Wdrożenie win2003serwer w A. cz. 1

Zadanie wygląda następująco

Zastąpić stary serwer oparty o linuksa windowsem 2003 serwer a pracę poprzez VPN zastąpić pracą terminalową

Zadania nowego serwera :

1. udostępnianie programu DOSowego do przeglądania starszych danych

2. dostęp do nowego programu opartego o FireBird’a

3. robienie kopii zapasowych

4. serwer terminali dla punktów sprzedaży poza siedzibą firmy

5. VPN opcjonalnie

6. serwer Płatnika

Pierwsze spostrzeżenia :

1. windows 2003 sbs nie wspiera pracy terminalowej

2. windows 2003 Standard Serwer wpiera pracę terminalową

3. standardowe licencje (5CAL) nie dają dostępu do pracy terminalowej

4. dla każdego komputera pracującego w sieci i korzystającego z serwera trzeba dokupić licencję a dla każdej maszyn pracującej terminalowo trzeba dokupić dodatkowe licencje dla pracy terminalowej. Jeżeli mamy 6 komputerów lokalnie i 3 terminalowo to musimy kupić 9 licencji zwykłych i 3 terminalowe (chore)

5. licencję dzielą się na

a) licencję na użytkownika – lepsze dają dostęp z dowolnej maszyny dla użytkownika

b) licencję na sprzęt – dawane na sprzęt i od niego zależne

6. uruchomienie serwera usług terminalowych bez licencji i jego aktywacji pozwala na pracę przez 120 dni