Category Archives: Linux

Usunięcie zabezpieczenia przed kopiowaniem treści z PDF

Czasem zdarza się pobrać PDF z banku czy z jakiegoś labo i okazuje się że nie można skopiować tekstu z pliku PDF. Wszystko jest fajnie, tylko jeśli potrzebujemy skopiować lub przepisać długi ciąg znaków pozornie nie podobny do niczego to mamy problem.
Autor PDF włączył zabezpieczenia, które i tak można w łatwy sposób obejść, trochę to bez sensu ale ludzie nadal stosują takie “triki”.

Widok zabezpieczeń dokumentu z poziomu Adobe Acrobat Reader wygląda tak:
Zabezpieczenie PDF - widok z Acrobat Readera

Do pozbycia się zabezpieczeń najłatwiej skorzystać z Ghostscript (->http://ghostscript.com/download/)

Procedura usunięcia zabezpieczeń z PDF:

  1. Akurat pod ręką miałem system ze stajni M$, dlatego pobieramy wersję na Windows (w moim przypadku x64)
  2. Instalujemy
  3. Włączamy cmd i wchodzimy w miejsce instalacji do podfolderu bin (x:\\gs\gs9.19\bin), tam jest gswin64c.exe, którego będziemy używać.
  4. Uruchamiamy polecenie: gswin64c -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile="x:\\gs\gs9.19\bin\notescured.pdf" "x:\\gs\gs9.19\secured.pdf"
    W wersji x32 mamy plik gswin64c
  5. Po wykonanej konwersji mamy plik notsecured.pdf, z którym możemy robić co tylko chcemy.

Widok z konsoli po przeprowadzonej konwersji

 

Sam Ghostscript ma dużo więcej opcji, w tym przypadku najbardziej dla mnie przydatne to:

  • -q – brak wyświetlania komunikatów, w większości “zbędnych”
  • -sDEVICE=pdfwrite – tworzenie PDF, oczywiscie Ghostscript umożliwia konwersję do wielu innych formatów, chętnych odsyłam do dokumentacji.
  • -dOutputFile – wskazanie pliku wyjściowego

Oczywiście to jedna z wielu metod, przy minimalnym nakładzie pracy i konfiguracji. Chętni mogą uruchomić więcej fajerwerków przy konwersji lub wykonać ją z poziomu konsoli GhostScript.

Ubuntu – globalna konfiguracja połączenia z wykorzystaniem serwera proxy ze znakiem @ w haśle

Napotkałem na dość ciekawy problem… W jaki sposób w Ubuntu skonfigurować dostęp przez proxy, z poziomu konsoli, korzystając z autoryzacji domenowej, posiadając znak @ w haśle?

Rozwiązanie:

  1. sudo vi /etc/bash.bashrc #(lub wykorzystanie ulubionego edytora tekstowego zamiast vi)
  2. Dodanie linii export http_proxy=http://DOMENA\\USER:HASŁO_%40@adres.serwera.proxy:port, gdzie znak @ w haśle zastępujemy ciągiem %40
  3. Przelogowanie się

Analogicznie dodajemy wpis dla ftp_proxy jeśli jest taka potrzeba.

 

Odzysk zdjęć z uszkodzonej karty SD przy pomocy PhotoRec

Kilka dni temu miałem okazję zabrać się za odzyskanie zdjęć z wakacji z uszkodzonej karty SD (jakaś noname).

Szukając rozwiązania dla siebie natrafiłem na program PhotoRec (link).

Oprogramowanie nie dość że darmowe (GPLV v2+), to dostępne dla wielu platform: DOS, MS Windows *, GNU/Linux, *BSD, SunOS, Mac OS X. Umożliwia odzyskanie danych z nośników, takich jak karty pamięci, dyski twarde, płyty CD i pendrive’y. W przypadku usuniętych plików wystarczy zeskanowanie partycji, w przypadku braku partycji możliwe jest uruchomienie odzyskiwania w trybie RAW, program szuka sygnatur wybranych plików niezależnie od systemu plików na nośniku.

Program PhotoRec jest dostarczany w pakiecie z TestDisk (program do odzyskiwania utraconych partycji, naprawy sektora rozruchowego – przy awariach spowodowanych wadliwym oprogramowaniem czy wirusem).

Jedynym minusem PhotoRec jest to że odyskiwane pliki nie mają zachowanych nazw źródłowych – program nadaje swoje nazwy dla plików.

Krótka instrukcja obsługi:

  1. Uruchamiamy PhotoRec (domyślnie instalowany w katalogu TestDiska). Na tym etapie następuje skanowanie listy dostępnych nośników
  2. Wybieramy właściwy nośnik i wybieramy [Proceed ]
  3. W kolejnym oknie mamy możliwość wyboru opcji działania programu, poszukiwanych typów plików i partycji lub całego nośnika.W moim przypadku wybrano cały dysk, próba skanowania partycji zakończyła się fiaskiem – odzyskane kilkanaście zdjęć. Po ustawieniu nośnika, wybraniu opcji plików (o ile było to koniecznie) należy uruchomić szukanie poprzez wybranie [Search]
  4. Podczas skanowania jest widoczny postęp prac, liczby i rodzaje odzyskanych plików i szacowany czas zakończenia skanu. W każdej chwili można przerwać skan -> [Stop]
  5. Podsumowanie po zakończeniu skanu. Jest wyświetlane ile plików zostało wyswietlonych, folder z odzyskanymi danymi (wewnątrz katalogu z PhotoRec)
  6. …[Quit]

Tym razem to wszystko. Łatwo poszło, udało się odzyskać większość zdjęć.

 

Ubuntu 12.04 – 500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

W ostatnim czasie przytrafił mi się upgrade Ubuntu do wersji 12.04. Wraz z ugrade pojawiła się nowa wersja VSFTPD 2.3.5. Niby wszystko fajnie ale po kilku dniach zorientowałem się że coś ftp zaczął szwankować.

Wpisanie w Google komunikatu “500 OOPS: vsftpd: refusing to run with writable root inside chroot ()” wyświetliło całą masę rozwiązań… Zainteresowanych odsyłam do poszperania…

Tylko że niekoniecznie mam ochotę i czas kombinować z czymś co działało dobrze i spełniało moje oczekiwania.

Rozwiązanie:

  1. Deinstalacja vsftpd – apt-get remove vsftpd
  2. Ściągnięcie poprzedniej wersji z repozytorium Ubuntu (2.3.2-3ubuntu5)
  3. Instalacja dpkg -i nazwapakietu
  4. Oznaczenie żeby system wspaniałomyślnie nie próbował zaktualizować vsftpd: echo vsftpd hold | dpkg --set-selections

…i życie stało się prostsze.
Poprzednia wersja działa jak należy, upgrade nie próbuje mi zaktualizować vsftpd.
Oczywiście to tylko jedna z dostępnych metod – nie chciało mi się kombinować…

 

Public_html – skrypty php przestały działać

Wykonałem szybki update && upgrade na serwerze hostującym kilka stron moich znajomych, działający na Debianie. W cudowny sposób przestały działać skrypty php umieszczone w public_html w katalogach domowych. Oczywiście problem nie występował dla vhostów.
Okazało się że w /etc/apache2/mods-enabled/php5.conf w jakiś bliżej niewyjaśniony sposób pojawił się wpis:

<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_value engine Off
</Directory>
</IfModule>

Wykomentowanie/usunięcie tego kody powoduje ponowne działanie skryptów php umieszczonych w public_html poszczególnych userów.
Modyfikując powyższy kod można uaktywnyć/wyłączyć ubsługę php dla poszczególnych kont – w zależności jaki efekt chcemy uzyskać.