Bądź na bieżąco - RSS

Debian Wheezy – Vsftpd: Refusing to Run With Writable Root Inside Chroot ()

7 września, 2013 | Brak Komentarzy | Kategoria: Linux, Porady

ftp-iconWheezy, który jest najmłodszą wersją w dystrybucji Debian, zyskał już całkiem spore gorono użytkowników. Przyznam, że również korzystam z tej wersji i myśle, że jest całkiem udanym produktem. Niemniej spotkałem się ostatno z pewnym problemem, który dotyczył serwera FTP. Ponieważ od kilku lat korzystam z pakietu vsftpd, który wydaje się być dość stabilną i bezpieczną alternatywą dla pozostałych serwerów, postanowiłem zainstalować to oprogramowanie na jednym z moich nowych hostów.   Tym razem czekała mnie przykra niespodzianka. Po zainstalowaniu paczki i skopiowaniu gotowych i sprawdzonych plików konfiguracyjnych, przy próbie pierwszego połączenia vsftpd powitał mnie komunikatem:

vsftpd: refusing to run with writable root inside chroot() Login failed.

Bardzo zależało mi na rozwiązaniu problemu. Szybka lektura z pomocą Google zaowocowała gradem linków, setkami odpowiedzi na różnych forach. Niestety żadna nie dawała gotowej recepty. Jednak w międzyczasie zidentyfikowałem bład opisany w serwisach Debiana: 656900. Pozwoliło to na wyszukanie całkiem ciekawej łatki. Okazało się, że ekipa Cyconet na swoim blogu zdążyła opublikować poprawioną wersję vsftpd. Wystarczyło ją zainstalować (kod/sniplet zamieszczam poniżej) i po problemie… do następnego razu.

echo "deb http://ftp.cyconet.org/debian wheezy-updates \ 
main non-free contrib" >> \
/etc/apt/sources.list.d/wheezy-updates.cyconet.list; \
aptitude update; aptitude install -t wheezy-updates \ 
debian-cyconet-archive-keyring vsftpd && \
echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf \
&& /etc/init.d/vsftpd restart

MG

Tagi: , , ,

Instalacja GRUB na drugim dysku macierzy RAID1

6 lipca, 2013 | Brak Komentarzy | Kategoria: Linux, Porady

RAIDPocząwszy do Debiana Squeuze, wśród jego użytkowników, administratorów systemu itd. rozgorzała dyskusja na temat błędów pojawiających się podczas instalacji. Rzecz dotyczy składania macierzy RAID1. Jak się okazuje, nawet prawidłowo przeprowadzony proces instalacji systemu od zera nie gwarantuje, że nasz serwer będzie bezpieczny. W czym rzecz? W przypadku awarii pierwszego dysku macierzy, nie ma szans aby system wystartował z drugiego, lustrzanego dysku. Najprościej ujmując, pakiet GRUB, który stanowi tzw. boot-loader, zostanie zainstalowany w MBR (Master Boot Record – Główny Rekord Startowy) tylko pierwszego dysku. Rozwiązanie wydaje się bardzo proste. Trzeba ręcznie zainstalować GRUB w MBR drugiego dysku. Jednak z niewiadomych przyczyn większość poradników przytacza błędną komendę (sic!). Wg moich doświadczeń, a walczyłem z powyższym problemem dzień cały, jedyną i sprawdzoną postacią komendy 'grub-install’ jest:

grub-install --no-floppy --boot-directory=/dev/md0 /dev/sdb

Kilka słów komentarza. Istotne jest poprawne wskazanie zarówno partycji typu RAID (/dev/md0) jak i fizycznego dysku (/dev/sdb – zakładam, że w przytoczonym przykładzie drugi dysk to /dev/sdb). Po wykonaniu powyższej operacji, można przejść do sprawdzenia czy system startuje z drugiego dysku np. odpinając na czas testów, dysk pierwszy od kontrolera.

MG

Tagi: , ,

Jak podejrzeć kto zajął zasób we współdzielonym kalendarzu MS Exchange

6 kwietnia, 2013 | Brak Komentarzy | Kategoria: Porady, Windows

Calendar-iconPowszechnie wiadomo, że serwer MS Exchange, oprócz standardowych skrzynek pocztowych, obsługuje skrzynki związane z zasobami. Dotyczy to zarówno lokalizacji (np. sala konferenycyjna) jak i sprzętu (np. projektor). Ta, dość wygodna funkcjonalność, umożliwia rezerwowanie zasobów w ramach organizacji. Informacje o ich zajętości można uzyskać przeglądając współdzielony kalendarz.

Niestety, standardowa konfiguracja sewera umożliwia odczytanie informacji tylko o zajętości. Nie dowiemy się natomiast kto zdążył już zarezerwować zasób. W codziennej pracy włączenie informacji o osobie rezerwującej okazuje się bardzo przydatne i pożądane.

Jak to zrobić w najprostszy sposób? Korzystając z Power Shell dostarczonego w pakiecie MS Exchange (nie mylić z Command Prompt czy Power Shell systemowym!). Po uruchomieniu Power Shell z menu systemowego, przywita nas niebieskie okienko ze znakiem zachęty. Wydajemy polecenie:

[PS] C:>Get-MailboxFolderPermission NazwaZasobu:Calendar

RunspaceId : 8706cde4-2cb5-4519-9a46-a46fcc0c450c
FolderName : Calendar
User : Default
AccessRights : {AvailabilityOnly}
Identity : Default
IsValid : True

Zwróćmy uwagę na wiersz AccessRights, w którym odczytujemy informacje o uprawnieniach: AvailabilityOnly.

Następnie wydajemy polecenie:

Set-MailboxFolderPermission NazwaZasobu:Calendar -User Default →
→ -AccessRights Reviewer

które zmieni uprawnienia dotyczące obiektu NazwaZasobu. To wszystko. Odtąd możemy zawsze sprawdzić kto zarezerwował zasób. Jeszcze tylko mały test:

[PS] C:>Get-MailboxFolderPermission NazwaZasobu:Calendar

RunspaceId : 8706cde4-2cb5-4519-9a46-a46fcc0c450c
FolderName : Calendar
User : Default
AccessRights : {Reviewer}
Identity : Default
IsValid : True

RunspaceId : 8706cde4-2cb5-4519-9a46-a46fcc0c450c
FolderName : Calendar
User : Anonymous
AccessRights : {None}
Identity : Anonymous
IsValid : True

Mam nadzieje, że wszyscy zauważyli zmianę uprawnień 🙂

MG

Tagi: , , , ,

Preparing to configure Windows. Do not turn off your computer.

1 grudnia, 2012 | Brak Komentarzy | Kategoria: Porady, Windows

Moment aktualizowania systemu Windows jest dla mnie zawsze dość stresujący. Niestety, raz na jakiś czas, im częściej tym lepiej, należy aktualizować serwery. Przyznam, że po wielu latach, nadal mam mieszane uczucia i zdarza mi się odwlekać tę chwilę. Niedawno w trakcie aktualizacji jednego z serwerów produkcyjnych musiałem zmierzyć się ze 'zwisem’ w trakcie wspomnianego procesu. Kiedy od godziny obserwuje się napis ’Preparing to configure Windows. Do not turn off your computer.’ różne myśli zaczynają chodzić po głowie. Przede wszystkim nie można ulec panice i restartować ręcznie serwera bo może się to skonczyć źle… Czy jest jakaś alternatywa?

Poniżej zamieszczam procedurę dla sytuacji, w której instalacja trwa od dłuższego czasu, RDP nie działa, jednak nadal można wykonać ping do serwera.

  1. Na komputerze z systemem Windows, należy założyć konto o takiej samej nazwie użytkownika i haśle, jak konto administratora w przypadku problematycznego serwera.
  2. Następuje logujemy się do świeżo utworzonego konta i uruchamiamy polecenie 'services.msc’ oraz łączymy z serwerem.
  3. Na liście aktywnych usług odnajdujemu ’Windows modules installer’, prawie na pewno usługa znajduje się w trybie ’Stopping’, nie można też ani jej zatrzymać ani zmienić konfiguracji. Właśnie ta usługa jest najczęściej odpowiedzialna za zwis podczas aktualizacji.
  4. Programem/procesem, która uruchamia wspomnianą usługę jest ’C:\windows\servicing\trustedinstaller.exe’, musimy zatem zabić ten proces.
  5. Pobieramy z Internetu narzędzie do zdalnego zarządzania procesami np. ’http://lizardsystems.com/remote-process-explorer/’.
  6. Po zainstalowaniu narzędzia, podłączeniu do serwera i zabiciu procesu, serwer od razu przejdzie do ponownego uruchomienia systemu.

Mam nadzieję, że powyższy wpis okaże się pomocny i pozowoli szybko, w sposób cywilzowany, rozwiązać problem z aktualizacją.

MG

Tagi: , ,

Instalacja winapcupsd na systemie serwerowym

6 października, 2012 | Brak Komentarzy | Kategoria: Porady, Windows

Czy wszystkie serwery Windows powinny być zabezpieczone za pomocą zasilaczy awaryjnych? Odpowiedź jest oczywista. Jednak nie zawsze łatwa w realizacji. Co zrobić jeżeli nie mamy akurat pod ręką np. APC Smart-UPS, dedykowanego dla serwerów a pozostały nam niewykorzystane APC Back-UPS dla stacji roboczych? Zazwyczaj ten drugi pozwoli na prawidłowe zamknięcie systemu  w ciągu kilku minut, nadaje się zatem na tymczasowy zasilacz. Problem polega jednak na oprogarmowaniu dostarczanym ze sprzętem:

  • APC Smart-UPS jest sprzedawany z aplikacją PowerChute Business Edition, dedykowaną dla serwerów, i nie obsługuje innych modeli zasilaczy APC,
  • z kolei APC Back-UPS jest sprzedawany z aplikacją PowerChute Personal Edition, której nie możemy zainstalować na serwerowyn systemie.

Można pomysleć, że to sytuacja bez wyjścia. Tymczasem, ku mojemu zaskoczeniu, można skorzystać z oprogramowania na licencji GPL, którym jest Apcupsd. Na pewno dla każdego, kto instalował zasilacze APC pod Linuxem, ta nazwa nie brzmi obco. Na stronie projektu znajduje się odnośnik do portu dla Windows. Okazuje się, że aplikacja działa bardzo sprawnie a konfiguracja nie różni się niczym od tej z Linuxa. Jedynym, drobnym problemem, jest instalacja sterownika dostarczanego z aplikacją (należy uważnie przeczytać dokumentację i postępować zgodnie z instrukcją krok po kroku). Poza tym winapcupsd pozwala cieszyć się na serwerze pełnymi możliwościami zasilacza awaryjnego dla stacji roboczej.

MG

Tagi: , ,

Polecenie 'forfiles’

1 września, 2012 | Brak Komentarzy | Kategoria: Porady, Windows

Bardzo ciężko jest się przyznać do własnej niewiedzy. Jednak czasami trzeba. Ostatnio musiałem się zmierzyć z problemem usuwania logów aplikacji po 14 dniach na serwerze Windows 2008R2. Zadanie dosyś proste jeśli myślimy o środowisku Linuksa. Czy jest tak samo w przypadku Widnows? Rzecz jasna można skorzystać z bibliotek Cygwin, ale tak czy inaczej będzie to forma protezy. Dlatego zabrałem się za przeglądanie Internetu i po chwili, po raz pierwszy, natknąłem się na program/polecenie forfiles. Uruchamiane klasycznie z linii poleceń pozwala zbudować prosty skrypt, który po dodaniu do harmonogramu zadań systemowych będzie czyścił logi. Poniżej przyklad:

forfiles /S /D -14 /P "Dysk:\Log\" /M *.log /C "cmd /c del @file"

Sprawdziłem i działa całkiem dobrze:) Można powiedzieć, że w pewnym sensie Microsoft dostarczył odpowiednik linuksowego polecenia 'find’. Na zakończenie, skrócona lista opcji programu 'forfiles’:

/P nazwa_ścieżki      Wskazuje ścieżkę do rozpoczęcia wyszukiwania.                       
                      Folderem domyślnym jest bieżący katalog                       
                      roboczy (.).

/M maska_wyszukiwania Wyszukuje pliki według maski wyszukiwania.                       
                      Domyślna maska wyszukiwania to '*' .

/S                    Nakazuje poleceniu forfiles przejście do                       
                      podkatalogów. Na przykład: "DIR /S".

/C polecenie          Wskazuje polecenie, które ma być wykonane dla                       
                      każdego pliku. Ciągi polecenia powinny                       
                      być ujęte w cudzysłów.

                      Domyślne polecenie to: "cmd /c echo @file".
                      Następujące zmienne mogą być używane w                        
                      ciągu polecenia:                       
                      @file    - zwraca nazwę pliku.                        
                      @fname   - zwraca nazwę bez                                   
                                 rozszerzenia.                       
                      @ext     - zwraca tylko rozszerzenie                                   
                                 pliku.                       
                      @path    - zwraca pełną ścieżkę pliku.                       
                      @relpath - zwraca ścieżkę względną                                   
                                 pliku.                       
                      @isdir   - zwraca wartość "TRUE" dla katalogu i                                   
                                 "FALSE" dla pliku.                       
                      @fsize   - zwraca rozmiar pliku w bajtach.                       
                      @fdate   - zwraca datę ostatniej modyfikacji                                   
                                 pliku.                       
                      @ftime   - zwraca godzinę ostatniej modyfikacji                                   
                                 pliku.

/D data               Zaznacza pliki z datą ostatniej modyfikacji taką
                      samą lub późniejszą (+) bądź taką samą lub
                      wcześniejszą (-) od określonej daty, korzystając
                      z formatu "yyyy-MM-dd"; zaznacza również pliki 
                      z datą ostatniej modyfikacji taką samą lub
                      późniejszą (+) od bieżącej daty +"dd" dni bądź
                      taką samą lub wcześniejszą (-) od bieżącej daty.
                      Liczba dni "dd" musi być zzakresu 0-32768.
                      Jeżeli nie określono żadnego znaku, domyślnie
                      zostanie użyty znak "+".

MG

Tagi: , , , ,

Jednorazowe korzystanie z Proxy podczas aktualizacji

2 czerwca, 2012 | Brak Komentarzy | Kategoria: Bez kategorii, Linux, Porady

Jednym z wielu zadań należących do administratora systemu Linux Debian jest wykonywanie aktualizacji. Funkcjonuje nawet anegdota, że użytkownika Debiana można rozpoznać po tym, iż każdy dzień rozpoczyna od komendy:

apt-get update

Tak czy inaczej czasami zdarza się, że aktualizacje ciągną się w nieskończoność a szybkość połączenia pozostawia wiele do życzenia. Nie są to niestety sporadyczne przypadki. Dodatkowo jeżeli mamy do czynienia z kilkoma serwerami w sieci, które powinniśmy zaktualizować sytuacja może być irytująca. Rozwiązaniem w tym przypadku jest serwer proxy. Co zrobić jednak, gdy chcemy z niego skorzystać tylko jednorazowo na czas aktualizacji? Rozwiązanie jest bardzo proste i wymaga jedynie dostępu do konsoli. Wydajemy polecenie:

http_proxy='http://adres_serwera_proxy:port'

co pozwoli nam na wykorzystanie proxy ad-hoc bez rekonfiguracji ustawień systemowych.

MG

 

Tagi: , ,

Błąd MS SQL – Performance counter registry hive consistency check

5 listopada, 2011 | Brak Komentarzy | Kategoria: Porady, Windows

Świat byłby zbyt piękny gdyby wszystko działało od razu bez problemu. Ostatnio, przy okazji instalacji SQL Server 2008 R2 Standard Edition na dziewiczym systemie operacyjnym Microsoft Windows Server 2008 R2 Standard, spotkałem się z problemem, którego rozwiązanie zajeło sporo czasu. Okazało się, że instalator zatrzymuje się na komunikacie o niespełnionej zależnościPerformance counter registry hive consistency check. Nie będę się rozpisywał na temat tego błędu, który związany jest z nieprawidłowymi wpisami do rejestrów. Zresztą na internetowych forach pełno jest poradników na ten temat. Niestety większość metod nie pomaga. Na szczęście znalazłem skuteczną łatkę systemową SQL2008R2patch.exe, którą mogę szczerze polecić jako przetestowaną i działająca. Pozwala zaoszczędzić dużo czasu i bezproblemowo przygotować system do pracy 🙂

MG

Tagi: , ,