Pobudka na odległość, czyli Wake On LAN w praktyce – suplement

Na początku maja ubiegłego roku po wielogodzinnych testach, próbach i poszukiwaniach powstał artykuł stanowiący mini-kompendium wiedzy na temat Wake On LAN. Spotkał się ze sporym zainteresowaniem pomimo faktu, że opisane doświadczenia i wyniki były dość mocno ograniczone do posiadanego przeze mnie sprzętu, a w szczególności routera – Apple Time Capsule. Niestety to właśnie to urządzenie stanowi słabe ogniwo, przyczynę przez którą budzenie z sieci Internet nie działa poprawnie.

Osoby zaczynające dopiero zabawę z WOL zapraszam do lektury wcześniejszego artykułu – wiedza tam zawarta pomoże zrozumieć dzisiejszy wpis.

Niedawno – aktualizacja z dnia 24.07.2014 – zasugerowałem czytelnikom, posiadaczom innych routerów (z możliwością instalacji alternatywnego firmware’u) wykorzystanie VPNa(-u?) co mogłoby sprawić, że Magiczny Pakiet trafi do sieci lokalnej. Okazuje się, że oprogramowanie typu dd-wrt czy Tomato pozwala również na modyfikację, której nie oferują urządzenia sieciowe Apple, tj. dodawanie statycznych, trwałych wpisów w tablicy ARP na routerze. Z tego rozwiązania skorzystał Paweł Szczepanek (@pauluz_szczepan), który podzielił się z nami swoją wiedzą. Mail zawierający kolejne kroki prowadzące do celu zamieszczam w całości poniżej (odrobinę przeredagowany za sugestią i zgodą autora):

Cześć
Przeczytałem aktualizacje, piszę do ciebie list zamiast komentarza we wpisie. Zawartość tego listu daję na prawach CC 3.

Mam router Linksys WRT160NL z oprogramowaniem: DD-WRT v24-sp2 (08/07/10) std (SVN revision 14896)
Konfiguracja komputera wzbudzanego: Win7 Ultimate 64-bit, Gigabyte GA-F2A85X-UP4, AMD APU A10-5800k 4GHz; karta sieciowa: RealTek Semiconductor RTL8168/8111 PCI-E Gigabit Ethernet NIC

Ponieważ zadziałało budzenie kompa na odległość (z internetu), więc opiszę co robiłem.

Przeczytałem ten wpis w wiki aby lepiej zrozumieć jak to może działać. No i generalnie chodzi o to, że forwardowanie portów 9 lub 7 na adres rozgłoszeniowy często nie działa. Raczej nie chce wnikać dlaczego ale coś bym przypuszczał, że specyfikacja nie pozwala na zapis w odpowiednich plikach konfiguracyjnych od routingu przekierowania na adres typu 192.168.1.255 (broadcast).

Stąd rozwiązanie leży w tym, że kierujemy te porty (9) na inny adres, na którym NIE MA jakiegoś urządzenia – np. 192.168.1.254 i ten adres w tablicy ARP definiujemy jako rozgłoszeniowy (konstruujemy na nim odpowiedni pakiet rozgłoszeniowy).

Ja tak zrobiłem jak piszą w tym rozdziale na dd-wrt, czyli:

  • dałem forwarding:

wol | 9 | 9 | udp | 192.168.1.254 | x

  • i uzupełniłem ARP:

arp -i br0 -s 192.168.1.254 FF:FF:FF:FF:FF:FF

W artykule wyjaśniają dlaczego tak a nie inaczej trzeba go zbudować (to FF:…) oraz co tam jeszcze jest istotne.

Do obserwowania przychodzących pakietów Magic używam programu Wake-On-Lan Packet Sniffer (co ciekawe mam wersję 1.2 a na stronie widnieje v1.1), a pakiety wysyłam z programu Wake On Lan GUI.

Dla mnie ważne było to że wysyłałem Pakiet Magic z maską 255.255.255.255 na mój IP routera z adresem MAC ustawionym już dla właściwego kompa w LAN. Bez tej maski nie przekazywał całego IP routera tylko rozgłoszeniowy (a więc typu xxx.xxx.xxx.255)

Tutaj właśnie tego nie rozumiem w pełni. Być może chodzi z tymi maskami o to, aby pakiet Magic wysłać do wszystkich komputerów w podsieci, ale ja w tym momencie (wysyłka z Internetu) nie chcę go posyłać gdzieś na wiele IP tylko konkretnie na ares IP mojego routera. Potem dopiero rozgłosi się już w mojej sieci lokalnej za routerem.

Generalnie działa u mnie bo Sniffer pokazuje że przyszedł pakiet. Mówię tu oczywiście o wysyłaniu z całkiem innego miejsca w sieci.

Kompy obserwowałem przez TeamViewer. Całkiem zacny programik i śmiga za Free dla użytkowników niekomercyjnych.

Sam TeamViewer także oferuje wzbudzanie kompów jeśli mamy je zarejestrowane w tym programie, ale to nie zadziałało u mnie – trochę mnie to martwi, bo nie widzę przeciwskazań aby TeamViewer wysłał Magic Pakiet na wskazany przeze mnie IP routera – i potem już router z portu 9 zajął by się resztą….

Mam jeszcze po drugiej stronie mojej sieci router D-Link DIR-300, ale posiada fatalny interfejs webowy i nie można modyfikować w nim tablicy ARP.

Na forach polecają po prostu podmienić w nim zarządzanie na dd-wrt ale tego się na razie nie podjąłem.
http://www.dd-wrt.com/wiki/index.php/DIR300 (mam tę wersję Revision A)
Samo skierowanie w tym DIR-300 portu 9 na broadcast do mojej sieci LAN nie dawało efektu – i temu się nie dziwię. Sądzę że podobnie i w tym routerze musiałbym
dopisać wpis do ARP.

I na koniec: tutaj piszą, że aby móc wysyłać pakiet budzący z Internetu, wymagany jest router na którego można się telnetować i ustawiać wpisy w ARP.

To tyle.

Pozdrawiam

Ze swojej strony dodam, że:

jeśli wasz router pozwala na dostęp via Telnet/SSH możecie z poziomu tego urządzenia wysłać Magiczny Pakiet wykorzystując komendę wol (przy czym należy zastosować pełną ścieżkę!):

/usr/sbin/wol -i 192.168.1.255 -p PP AA:BB:CC:DD:EE:FF

192.168.1.255 – ten adres należy zastąpić adresem rozgłoszeniowym w waszej sieci lokalnej,

AA:BB:CC:DD:EE:FF – oznacza adres MAC komputera, który chcecie obudzić.

Kwestia maski 255.255.255.255 o której pisze Paweł związana jest z wybranym sposobem wysyłania pakietów:

  • Limited broadcast. Magic Packet sent to the limited broadcast address (255.255.255.255) it is received by all machines on the same subnet but not forwarded to machines on other subnets.

Czyli właśnie dzięki jej zastosowaniu gwarantujemy, że pakiet trafi wyłącznie do wszystkich urządzeń znajdujących się w tej samej podsieci, i nie zostanie przesłany dalej.

Jak wcześniej wspomniałem, ograniczenia Time Capsule sprawiają, że powyższe przepisy nie zadziałają. Można wydłużyć nieco czas przechowywania wpisów w tablicy ARP stosując adresację statyczną, włączyć domyślny host w Narzędzie AirPort -> wybieramy Time Capsule i klikamy Edycja -> Sieć -> Opcje sieci, ale prędzej czy później utracimy możliwość wybudzania komputera.

Oczywiście, jeśli poświęcimy jeden komputer i pozostawimy go włączonego, to po zdalnym podłączeniu możemy z tego komputera wybudzić pozostałe maszyny w sieci. Wydaje mi się jednak, że zdecydowanie bardziej rozsądnym rozwiązaniem będzie wymiana routera.

Zaawansowane systemowe narzędzie diagnostyczne – sysdiagnose

Komputery Apple, dzięki wysokim standardom produkcji, rozsądnie dobranym i dopasowanym komponentom oraz świetnemu systemowi OS X, stanowią stabilne narzędzia i uwalniają użytkowników od wielu problemów, które są dość powszechne na konkurencyjnych platformach. Mimo to, zdarzają się sytuacje kiedy sprzęt zachowuje się w sposób odbiegający od normy. W końcu to tylko hardware i software projektowany i tworzony przez ludzi, prawda? Moim zdaniem, większość kłopotów ma swoje źródło między komputerem a oparciem krzesła ;)

Nie wnikając już głębiej w przyczyny, w sytuacji awaryjnej sięgamy po różne sposoby diagnozy i narzędzia naprawcze, by skutecznie wyleczyć Maczka. Najczęściej zaczynamy od Narzędzia dyskowego, obserwujemy zachowanie procesów w Monitorze aktywności, zaglądamy do logów Konsoli. Gdy zaś liczymy na pomoc innych, często korzystamy z Informacji o systemie.

Okazuje się, że system posiada w swoich zasobach interesujące narzędzie diagnostyczne uruchamiane z lini poleceń terminala – sysdiagnose. Wywołanie tej komendy:

sudo sysdiagnose -f ~/Desktop/

gdzie parametr -f pozwala wybrać ścieżkę do folderu w którym otrzymamy zwrotnie raporty diagnostyczne (domyślnie „lądują” one w /var/tmp), rozpoczyna gruntowne skanowanie i analizę komponentów systemowych oraz sprzętowych komputera.

sysdiagnose_01

Trwa to kilka minut i w efekcie zwraca archiwum .tar.gz, które po rozpakowaniu uraczy nas ogromną ilością raportów. Większość z nich będzie zagadką dla normalnych użytkowników, ale geekom ułatwią namierzenie powodów dysfunkcji komputera.

sysdiagnose_02

Oczywiście komenda pozwala na sprecyzowanie np. diagnozowanego procesu czy nawet załączenie trybu śledzenia kernela (Thorough Mode). Jestem przekonany, że narzędzie to może okazać się przydatne również programistom.

Ja – odpukać! – mam szczęście, bo jak dotąd żadnych problemów (tym bardziej poważnych) z Macami i OS X nie miałem, więc sysdiagnose uruchomiłem wyłącznie z ciekawości.

Źródło: OSXDaily

Keyboard Maestro – makro działające w wybranej aplikacji

Jeżeli macie potrzebę stworzenia makra uruchamianego przy użyciu skrótu klawiszowego, które będzie uruchamiane tylko i wyłączenie w wybranej przez Was aplikacji, to oczywiście jest to możliwe.

W tym celu należy stworzyć odpowiednią grupę makr. To właśnie ten element ma możliwość zdefiniowania tego, gdzie zebrane w nim elementy mają działać. Wystarczy na nią kliknąć i w panelu preferencji otrzymujemy odpowiednie opcje. Poza trybem opisanym w tytule tego wpisu możecie również, poza domyślną opcją uruchamiania wszędzie, wybrać programy w których dane makro nie będzie się uruchamiało. Oczywiście nie jesteście ograniczeni do jednej pozycji i śmiało możecie przygotować odpowiednie listy aplikacji.

keyboard_maestro_grupy

Polecam Wam wykorzystanie odpowiednich grup makr ze zdefiniowanymi listami odnoszących się do nich aplikacji. W ten prosty sposób możemy znacząco uporządkować nasze zbiory i jednocześnie podnieść liczbę dostępnych skrótów klawiaturowych.

Porthole po polsku!

Porthole PL 01

Z nieukrywaną przyjemnością i satysfakcją informuję zacne grono czytelnicze, że opisywana na applesauce aplikacja służąca do odtwarzania dowolnych dźwięków z Maca na bezprzewodowych głośnikach AirPlay – Porthole, otrzymała polskie tłumaczenie. Wraz z autorem programu mamy nadzieję, że możliwość komunikacji w naszym ojczystym języku, spodoba się obecnym użytkownikom Porthole. A nowych zachęci do przetestowania wersji demonstracyjnej i/lub zakupu tego przydatnego narzędzia.

Porthole PL 03

To moja pierwsza działalność translatorska, więc jestem gotowy na wszelką konstruktywną krytykę. Dołożyłem starań aby polskie tłumaczenie było jak najbardziej zgodne ze standardami przyjętymi w systemie operacyjnym OS X, oraz popularnych aplikacjach. Dosłowne tłumaczenie komunikatów i opisów rzadko kiedy się sprawdza, ważniejsze jest zachowanie odpowiedniego poziomu zrozumienia, dlatego niektóre słowa i zdania brzmią inaczej niż w angielskim oryginale.

Nowa wersja Porthole, zawierająca polskie tłumaczenie oraz poprawki błędów jest obecnie w fazie końcowych testów, również pod kątem współpracy z OS X 10.10.

Porthole PL 02

Porthole z interfejsem w języku polskim, powinien pojawić się wkrótce u zarejestrowanych użytkowników w uaktualnieniach programu.

Odtwarzanie filmów z torrentów – TorrenTV

Temat torrentów chyba od początku był kontrowersyjny. Nie wnikając jednak w zawartość plików udostępnianych w ten sposób, oraz ich legalność należy przyznać, że wykorzystanie sieci P2P znacząco odciąża serwery i przyspiesza transmisję plików.

Oczywiście dystrybucja multimediów w ten sposób to dziś wręcz standard. Aby móc obejrzeć film „z torrentów” należy najpierw go ściągnąć na dysk komputera oprogramowaniem klienckim takim jak np. uTorrrent. A później użyć odtwarzacza, np. VLC. Grupa programistów wpadła na pomysł aby upodobnić cały proces do streamingu, czyli ściągamy z wyszukiwarki plik .torrent następnie wrzucamy go w okno dedykowanej aplikacji, a ta zajmuje się pobraniem odpowiednich fragmentów filmu, dekodowaniem w czasie rzeczywistym i wysyłką tak przygotowanego materiału wprost do Apple TV.

torrentv_01

Pomysł prosty i genialny zarazem, prawda? Program jest już dostępny w wersji beta, zarówno na OS X, Windows oraz Linuksa. Niestety u mnie nie udało się osiągnąć oczekiwanych rezultatów. Być może to kwestia „czystości” systemu, wydajności komputera lub konfiguracji sieci (sprawdzałem wersję dla Maca oraz PC). Ponieważ TorrenTV czeka z komunikatem Waiting for Apple TV stawiam na to ostatnie. Tylko, że wszystkie inne programy korzystające z AirPlay działają jak należy, połączenie bezprzewodowe z pośrednictwem repeatera, też nie sprawia problemów…

torrentv_02

Niemniej uważam, że warto się temu projektowi przyglądać, sam będę śledził postępy i sprawdzał kolejne wersje programu TorrenTV.

WiMP ssie bardziej…

Grubo ponad rok temu sprawdzałem „apetyt” mobilnego Spotify na transfer danych przy jakości ustawionej na maksimum. Kończy mi się właśnie okres testowy WiMP HiFi, dlatego postanowiłem dokonać podobnego testu dla tej konkurencyjnej usługi streamingu audio. Jak możecie się domyślać zużycie pakietu danych w przypadku transmisji muzyki w formacie bezstratnym, jest zdecydowanie większe. Test wykonałem w nieco odmiennych warunkach, co nie zmienia faktu, że o ile wyniki można uznać za orientacyjne to rząd wielkości będzie podobny w różnych okolicznościach.

wimp_hifi_logo

Apetyt WiMP na transfer i baterię sprawdziłem podczas porannego spaceru:

Warunki testu

  • urządzenie: iPhone 5 w pełni naładowany, podłączone stockowe słuchawki
  • operator: Play, włączona transmisja 3G (jak dotąd LTE w mojej mieścinie brak…)
  • usługa: WiMP HiFi (wersja testowa, okres 30-dniowy)
  • muzyka: album „Space Police – Defenders of the Crown” zespołu Edguy,
  • ustawienie jakości: HiFi
  • czas testu: 1 godzina
  • miejsce: trasa Świecie Stare Miasto – Przechowo i z powrotem, ok 6 km
  • data: 23 lipca 2014 ;)

wimp_hifi_ios_02

Wyniki testu

Co widać na załączonym wyżej obrazku, zużycie transferu przy godzinnym odsłuchu muzyki wyniosło 478 MB. Daje to średnią ~7,97 MB/minutę, czyli około 133 kB/s. Obliczenie wymaganego pasma wykazuje zapotrzebowanie na nieco ponad 1 Mb/s. Wszystko się zatem zgadza, bo zakres przepływności dla formatów bezstratnych, jak FLAC czy Apple Lossless i podobnych zawiera się w granicach: 400 – 1411 kbit/s.

Gdybym więc postanowił słuchać muzyki w ten sposób, to mój 2 GB pakiet danych skończyłby się w jakieś 4-4,5 godziny… Reasumując: przy aktualnej cenie wersji HiFi, byłaby to oferta do przyjęcia (dla mnie) przy założeniu, że operator nie obciąża mnie dodatkowo opłatami za transmisję danych (Play posiada taką usługę, nie wiem jednak czy dotyczy ona wyłącznie WiMP Premium czy również WiMP HiFi).

wimp_hifi_ios_01

Godzinny odsłuch zmniejszył poziom naładowania baterii tylko o 9%. Co daje teoretyczne 10 godzin przyjemności delektowania się dźwiękami w najwyższej jakości, na jednym pełnym naładowaniu słuchawki. Wynik jest więc lepszy niż w przypadku Spotify pomimo faktu, że iPhone jest starszy o półtora roku a sprawność baterii znacznie mniejsza. Trzeba jednak wziąć pod uwagę, że test odbywał się w znacznie łagodniejszych warunkach: podczas spaceru, gdzie pokonana odległość nie wymagała wielokrotnego przełączania się telefonu między stacjami przekaźnikowymi operatora.

Nie zdarzyło się by odtwarzanie muzyki zostało przerwane (po za oczywistymi chwilami na zbuforowanie kolejnego utworu), nie zauważyłem też żadnej słyszalnej degradacji jakości dźwięku.

Czy sam porzucę Spotify na rzecz WiMP HiFi? Na chwilę obecną nie. Pomimo rzeczywiście lepszej jakości audio (co słychać zwłaszcza na kolumnach) nie przekonuje mnie oferta muzyczna (zbyt wiele tu popu i innych raczej ciężkostrawnych dla mnie gatunków, brak natomiast wielu klasycznych albumów, np. Metallicy). Kolejna sprawa to odtwarzacze WiMP – według mnie są nieczytelne i mało intuicyjne.

Przydatne skróty klawiaturowe w OS X

Osobiście uważam, że używanie skrótów klawiszowych w systemie OS X to podstawa efektywnej pracy. Sam staram się używać ich jak najczęściej i wciąż poszukuję nowych, które mogą pomóc mi przyśpieszyć realizację codziennych zadań. Jeżeli nie znajdę odpowiednich w systemie, to tworzę je według potrzeb. Te nowo tworzone najczęściej odwołują się do makr realizowanych przez Keyboard Maestro i służących automatyzacji mojej pracy. Dziś jednak mam dla Was listę tych domyślnie działających w systemie, o których bardzo prawdopodobnie nie wiedzieliście. Oczywiście pomijam tutaj klasyki typu kopiuj, wklej i tym podobne.

Zarządzanie aplikacjami:

Command+Alt+Escape – Wyświetlenie listy uruchomionych aplikacji i wymuszenie zamknięcia wybranej.

Command+Shift+Alt+Escape (przytrzymane przez trzy sekundy) – wymusza zamknięcie aplikacji, która aktualnie znajduje się „na wierzchu”

Edycja tekstu:

Fn+Backspace – klasyczny przycisk Delete

Shift+Alt+Backspace – kasowanie słowa po lewej stronie kursora

Fn+Alt+Backspace – kasowanie słowa po prawej stronie kursoras

Control+Command+D – wyświetla słownik z definicją słowa, przy którym znajduje się kursor myszy

Zrzuty ekranu:

Command+Shift+3 – zrzut całego ekranu. Zapis do pliku.

Command+Shift+Control+3 – zrzut całego ekranu. Zapis do schowka.

Command+Shift+4 – zrzut wybranego obszaru. Możecie tutaj wykorzystać spację, która przełączy Was w tryb zrzutu obszaru wybranej aplikacji. Zapis do pliku.

Command+Shift+Control+4 – zrzut wybranego obszaru. Możecie tutaj wykorzystać spację, która przełączy Was w tryb zrzutu obszaru wybranej aplikacji. Zapis do schowka.

Opcje wyłączania Maca:

Shift+Control+Eject/Power – usypianie wyświetlacza

Command+Option +Eject/Power – usypianie komputera

Command+Control+Eject/Power – zapisz zmiany i wyłącz wszystkie aplikacje po czym uśpij komputer

Command + Option+Control +Eject/Power – wyłączenie komputera

Inne:

Command+` – przełączanie pomiędzy oknami aktywnej aplikacji

Control+F3 – stare dobre Expose, pokazuje nam wszystkie aktualnie otwarte okna aplikacji

Command+F3 – pokaż Pulpit

Command+Shift+I – utworzenie wiadomości mail z linkiem do aktualnie oglądanej strony WWW. Działa jedynie w Safari.

Ciekaw jestem, które z wymienionych skrótów są dla Was nowością, a które należą do najczęściej używanych. Podzielcie się tą informacją w komentarzach. Chętnie poznam Wasze preferencje w tej kwestii, a może sam przy okazji dodam do zbioru moich faworytów coś nowego.

Wyniki finansowe Apple – popularność Maców rośnie

Za nami raport finansowy Apple. Jest to moment w którym z reguły kręcę głową z niedowierzaniem wobec ilości urządzeń, które sprzedała firma. Oczywiście na liście przoduje iPhone i za nim następuje długie, długie – na około 20 milionów sztuk – nic. Niezmiennie jest to niezatapialny flagowiec wśród elektroniki sygnowanej nadgryzionym jabłuszkiem. Poniżej ilości sprzedanego sprzętu w finansowym Q3.

35.2 milionów iPhone’ow / 31.2 milionów w analogicznym okresie roku 2013

13.3 milionów iPadów / 14.6 milionów w analogicznym okresie roku 2013

4.4 milionów Maków / 3.8 milionów w analogicznym okresie roku 2013

2.9 milionów iPodów / 4.57 milionów w analogicznym okresie roku 2013

To co mnie cieszy najbardziej to wzrost sprzedaży komputerów Mac. Muszę się Wam przyznać, że jest to ewidentnie moja ukochana kategoria produktów Apple. Mac to doskonałe narzędzie pracy, którego potencjał zależy tylko i wyłącznie od kreatywności i potrzeb użytkownika. Cieszy mnie, że coraz więcej osób staje się posiadaczami tych, w mojej opinii, najlepszych na rynku komputerów. Najważniejsze jednak, że takie wzrosty najprawdopodobniej powodują w samym Cupertino wzrost nakładów na rozwijanie tej linii produktów. Zarówno sprzętowo jak i programowo. Ciekaw jestem ilu z Was w ostatnim kwartale dokonało zakupu Maca.

Konfigurujemy serwer SFTP na Macu (OS X 10.9) część 2/3

W poprzednim odcinku dowiedzieliście się jak w ogóle uruchomić serwer SFTP w OS X. Jest to wręcz trywialne, ale taki dostęp – w domyślnej konfiguracji – ma swoje wady. Najważniejszą z nich jest to, że zdalny użytkownik może w prosty sposób przeglądać zawartość folderów systemowych. Nie może nic usuwać ani dodawać, ale po co w ogóle dawać możliwość wyświetlania zawartości folderów?

Zróbmy taki przykład. Zakładamy nowego użytkownika (Preferencje systemowe > Użytkownicy i grupy), prawym klawiszem myszy wybieramy na nim Opcje zaawansowane…

Opcje zaawansowane uzytkownika Intruz

Mój użytkownik nazywa się „Intruz”. Zmieniłem jego Katalog domowy, podając ścieżkę do folderu Publiczne, przynależącego do mojego konta. Ponadto wybrałem inną Powłokę logowania (domyślnie jest to bash, ja ustawiłem sh – co powinno zawęzić możliwości ew. „grzebactwa” ze strony Intruza). Oczywiście, należy jeszcze uaktywnić opcję Zdalne logowanie w Preferencje systemowe > Udostępnianie jeśli tego wcześniej nie zrobiliśmy i/lub dodać tego nowego użytkownika do grupy użytkowników, posiadających możliwość zdalnego dostępu – o ile nie daliśmy takich uprawnień wszystkim.

Sprawdźmy więc jak wygląda kwestia dostępu z poziomu sftp:

iMadlo:~ marek$ sftp intruz@192.168.1.14
Password:
Connected to 192.168.1.14.
sftp> ls
Drop Box
sftp> pwd
Remote working directory: /Users/marek/Public
sftp>

Jak zauważyliście, połączyłem się w Terminalu jako Intruz do swojego komputera. Po podaniu hasła serwer SFTP autoryzował dostęp. Komendą ls wyświetlam zawartość folderu, natomiast poleceniem pwd weryfikuję ścieżkę do określonego folderu roboczego. Wszystko się zgadza, jest to folder Publiczne, który określiłem w opcjach zaawansowanych użytkownika Intruz.

Niestety mogę śmiało zmienić ścieżkę i zobaczyć np. zawartość folderów systemowych:

sftp> cd /
sftp> ls
(null)-in             (null)-out            Applications
Incompatible Software Library               Network
System                Users                 Volumes
bin                   cores                 dev
etc                   home
                  mach_kernel
net                   opt
                  private
sbin                  tmp
                  usr
var

sftp>

Pomimo, że nic tu zrobić w zasadzie nie mogę:

sftp> mkdir /test
Couldn't create directory: Permission denied
sftp>

To i tak nie jest to raczej to czego oczekujemy… Po za tym jeśli zdalny użytkownik będzie korzystać z jakiegoś klienta SFTP to musiałby w konfiguracji tego programu podać dokładną ścieżkę, czyli /Users/marek/Public, by przy każdym połączeniu się w tym folderze znaleźć. Gdy zostawi domyślną, tj. „/”, zobaczy foldery systemowe naszego komputera.

Dlaczego tak się dzieje? Sprawdźcie uprawnienia np. folderu Biblioteki na dysku waszego komputera (skrót: Command+I):

Library uprawnienia

Zauważyliście, że każdy (everyone) posiada uprawnienia odczytu? To domyślne ustawienie w OS X, którego zdecydowałem się nie zmieniać, by nie ryzykować unieruchomienia systemu. Zastanawiałem się też nad utworzeniem grupy „Zdalni” (do ktorej dodałbym Intruza) i zabraniem dostępu tejże grupie, do wszystkich folderów po za Publiczne. Niestety, na obecnym etapie moja pewność w posługiwaniu się Terminalem, oraz zabawie przywilejami nie jest wystarczająca. Nic nie stoi na przeszkodzie, by „terminalowi wyjadacze” spróbowali takich modyfikacji – i podzielili się efektami na naszym blogu :)

Jeśli powyższy rezultat wam wystarczy możecie zakończyć lekturę. Jeśli jednak chcecie dowiedzieć się, jak ograniczyć uprawnienia zdalnego użytkownika wyłącznie do obsługi SFTP, oraz uniemożliwić przeglądanie innych folderów komputera – kontynuujcie!

Rozwiązaniem problemu jest tzw. chroot jail – dzięki któremu zmienimy katalog główny zdalnego użytkownika. Poniżej kroki, które przeprowadziłem:

Utworzyłem użytkownika „eseftep” podobnie jak Intruza, ale nie zmieniałem domyślnych ustawień (Opcje zaawansowane… pozostały nietknięte), dałem nowemu użytkownikowi możliwość zdalnego dostępu, następnie w Terminalu wprowadziłem poniższe:

sudo cp /etc/sshd_config /etc/sshd_config.backup
sudo chown root /
sudo chmod 755 /
sudo mkdir -p /chroot/eseftep/zdalny
sudo chown -R root /chroot/eseftep
sudo chown eseftep /chroot/eseftep/zdalny
sudo chmod -R 755 /chroot/eseftep

Pierwsza linia to zrobienie kopii zapasowej pliku sshd_config, który później zmodyfikuję. Dalej: zmiana właściciela – każdy folder w chroot jail musi należeć do roota, oraz ustalenie uprawnień. Poleceniem mkdir z parametrem -p tworzę kompletne drzewo folderów w katalogu głównym komputera – folder „chroot” zawiera folder o nazwie użytkownika, a ten – folder zwany „zdalny”, do którego będą wrzucane pliki. Dla nowych folderów wymagana jest kolejna zmiana własności oraz uprawnień.

UWAGA: Lepiej nie logować się lokalnie na konto użytkownika zdalnego, tzn. z poziomu systemu/okna logowania, ponieważ zostanie stworzony regularny profil wraz z domyślnymi folderami, tj. Biurko, Dokumenty, Obrazki, itp. Sugeruję ukrycie konta według metody opisanej tutaj.

Czas na modyfikację pliku sshd_config (ja edytowałem w programie TextEdit, ale jeśli znacie edytor tekstowy, jak np. vi, to możecie dokonać zmian bezpośrednio w Terminalu :)).

Najpierw zahaszowałem istniejący wpis:

#Subsystem sftp /usr/libexec/sftp-server

Następnie, na końcu pliku umieściłem poniższe:

Subsystem sftp internal-sftp
Match User eseftep
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/eseftep

Od teraz, użytkownik eseftep, po zalogowaniu trafia bezpośrednio do folderu eseftep, który jest dla niego katalogiem głównym!

iMadlo:~ marek$ sftp eseftep@192.168.1.14
Password:
Connected to 192.168.1.14.
sftp> pwd
Remote working directory: /
sftp> ls
zdalny
sftp>

Próba zmiany ścieżki nic nie da:

sftp> cd /Users/marek
Couldn't canonicalise: No such file or directory
sftp>

Ponadto, użytkownik eseftep może łączyć się tylko korzystając z protokołu SFTP. Pomimo faktu, że udostępniłem mu dostęp zdalny w panelu preferencji, to połączenie SSH nie będzie zrealizowane pomyślnie:

iMadlo:~ marek$ ssh eseftep@192.168.1.14
ssh eseftep@192.168.1.14
Password:
This service allows sftp connections only.
Connection to 192.168.1.14 closed.
iMadlo:~ marek$

No to najbardziej spektakularna część pracy za nami. Ale to jeszcze nie koniec. Pamiętajmy, że folder zdalnego użytkownika znajduje się w odizolowanym sandboksie, i do niego należą prawa własności do plików oraz uprawnienia zarówno do odczytu jak i zapisu. Oczywiście, jeśli jesteśmy administratorami komputera nie jest to większy problem, wystarczy utworzyć skrót do folderu „zdalny” w wybranym miejscu, w naszym katalogu domowym (np. na biurku) korzystając z Findera, lub utworzyć tzw. dowiązanie symboliczne korzystając z Terminala.

Żeby jednak nie było zbyt różowo, pojawia się kolejny problem: Finder nie odświeża zawartości folderu „zdalny” automatycznie po zakończeniu uploadu pliku. Zachowanie jest dziwne, czasem kilka plików się pojawi w oknie Findera, innym razem nie. Oczywiście gdy wyświetlimy zawartość tego folderu w Terminalu wszystkie pliki będą widoczne. Problemu z odświeżeniem nie ma też np. manager plików ForkLift. Zakładam więc, że jest efekt stanu zaśmiecenia mojego systemu, lub faktycznie Finder w Mavericksie „kuleje” w tej materii…

Postanowiłem wykorzystać rozwiązanie systemowe – Automatora. Zrobiłem w nim megaprosty workflow, którego działanie polega na sprawdzeniu czy w folderze „zdalny” pojawiły się nowe pliki, a następnie skopiowanie ich do folderu „sftp” na biurku.

Kopiowanie nowych plików

Skryp wyręcza mnie od sprawdzania zawartości folderu „zdalny”, ponadto operacja kopiowania powoduje, że właścicielem plików z pełnymi do nich prawami zostaję ja. Jeszcze jedno: chwilę po wykonaniu operacji na ekranie pojawia się komunikat o tym, że użytkownik „eseftep” skończył przesyłać do mnie pliki!

Alert Folder Actions

W kolejnej – ostatniej – części poświęconej konfugurowaniu serwera SFTP w OS X zajmiemy się tworzeniem grupy zdalnych użytkowników. Do przeczytania wkrótce.

29 urodziny Amigi

Dokładnie dwadzieścia dziewięć lat temu, 23 lipca 1985 roku na świat przyszła pierwsza Amiga, model 1000. Dzieło Jaya Minera oraz zespołu wielu zaangażowanych sercem i umysłem osób było prawdziwą rewolucją, technologiczną i mentalną. Ludzie przyzwyczajeni do ośmiobitowców dostali komputer osobisty z 32-bitowym procesorem (choć szyna danych była ograniczona do 16 bitów), zestawem specjalizowanych układów scalonych i wielozadaniowym systemem operacyjnym Amiga OS.

Amiga_1000DP

Choć graficzny interfejs użytkownika pojawił się oczywiście wcześniej (1983 r.) na komputerze Apple Lisa, to możliwości graficzne (rozdzielczości, wyświetlanie w kolorze) zostawiały w tyle zarówno Macintoshe, jak i resztę dostępnych na rynku komputerów osobistych. Dzięki bardzo dobremu wsparciu dla wideo i multimediów, Amiga szybko trafiła do studiów telewizyjnych, oraz pod strzechy programistów. Bardzo szybko zaowocowało to powstaniem rewelacyjnych tytułów, świetnych aplikacji użytkowych, ale przede wszystkim gier, które do dziś urzekają swoją grywalnością i stanowią inspirację dla nowych produkcji.

Tandem Amiga OS + Workbench oferował wiele udogodnień, których próżno było szukać u konkurencji: multitasking z wywłaszczaniem, wyjątkowo prosty system lokalizacji programów, czy unikalny system wielu „ściągalnych” ekranów. Ta ostatnia cecha umożliwiała jednoczesne wyświetlanie programów w różnych rozdzielczościach – ciężko to opisać, trzeba zobaczyć na własne oczy by przekonać się o wyjątkowości rozwiązania.

Oczywiście AOS był też strasznie zabugowany, brakowało systemu ochrony pamięci, obsługi pamięci wirtualnej i wielu innych rzeczy, a słynny komunikat Guru Meditation znają wszyscy amigowcy :)

Kontakt z Amigą miałem – biorąc pod uwagę jej cenę i dostępność w naszym kraju – dość wcześnie, swoją pierwszą „piećsetkę” kupiłem bodajże w 1989 roku. Później, zakochany w Przyjaciółce, ewoluowałem i użytkowałem większość z dostępnych modeli (za wyjątkiem A1500, A2000/A2500, A500+, A3000T i CDTV). Ostatnim posiadanym komputerem tej marki była Amiga 4000T (Escom), rozbudowana o karty: phase5 CyberStorm Mk3, phase5 CybervisionPPC, Petsoff Delfina DSP Lite, BSC Multiface III; wyposażona w dysk i nagrywarkę SCSI i inne rozszerzenia i graty, których nie pamiętam.

Dopiero w 2001 roku Amiga ustąpiła miejsce PowerMacowi G4/466 Digital Audio. Nie da się ukryć, że to dzięki Amidze i emulatorowi ShapeShifter, poznawałem świat Apple :)

W ogóle dzięki Amidze nauczyłem się wiele, od zabaw z grafiką (Deluxe Paint!), muzyką (Protracker) zaczynając a na wyciskaniu ostatnich soków ze sprzętu i systemu kończąc. Grzebactwo, partyzantka na Amidze były kwestią łamania ograniczeń, optymalizacji, dokonywania niemożliwego. Dla odmiany, na pececie zwykle wiązało się to z doprowadzeniem komputera do stanu używalności… Tuning kontra druciarstwo ;)

Zawsze z wielkim sentymentem wspominam dwanaście lat spędzonych z Przyjaciółką, stąd też chętnie dopinguje inicjatywom, takim jak Pixel Heaven, gdzie amigowa i nie tylko retro-spuścizna przypomina o pionierskich czasach. Szkoda, że zarówno Commodore, jak i późniejsi właściciele Amigi nie potrafili zapewnić długowieczności temu wyjątkowemu komputerowi. Dziś niestety jest to już tylko relikt przeszłości podpięty do aparatury podtrzymującej życie. Dobrze jednak, że są wciąż fanatycy poświęcający swój czas i umiejętności by to życie w informatycznej niszy podtrzymać.

Sto lat Przyjaciółko!