czwartek, 9 kwietnia, 2009 - 12:57

Czy programowanie może być zabawą?

Autor: nExoR | Kategorie: rec, script/developer

takie oto pytanie zawitało dzisiaj w moim RSS readerze, zadane przez GT – przepraszam Cię Grzesiu, że nie w komentarzach tylko tak tutaj – ale pytanie ciekawe, a odpowiedź zbyt długa, żeby ją wklepywać jako comment – a ping backa powinieneś dostać [jeśli masz włączonego]. nie traktuj tego więc jako atak – to czysta polemika (:

“A kto pamięta LOGO? Proste to było do bólu, ale uczyło myślenia.”

oj pamiętam ci ja logo, pamiętam – uczyłem się go na bosmanach 8. założeniem logo była edukacja i na początq lat 9o’  miało to sens. kilka lat temu [ok 4-5] miałem nieprzyjemność uczenia logo – takiego nowego, z innym edytorem, niby-obiektowego etc. mając porównanie czasów ‘wtedy’ oraz ‘dziś’ mogę śmiało powiedzieć – LOGO TO SYF. język nieprzemyślany, gdzie na siłę wtrącono część obiektowości, pozostawiając w wielu miejscach podejście strukturalne, totalnie zwalony edytor, który wręcz zmusza do zrobienia bałaganu w kodzie, ciężko cokolwiek znaleźć – po prostu masakra. jedyne czego można po logo oczekiwać to nauczenia się totalnie złych manier programowania, niespójności i raczej się można zrazić niż nauczyć. do dziś na murach można spotkać napisy ‘punk not dead’ a nawet czasem odbędzie się jakiś koncert – gdzie 8o% ludzi jest powyżej 4otki. z logo jest podobnie – należy pochylić czoło nad kawałkiem historii i zapomnieć.

“W systemie DOS, podobnie jak w ośmiobitowcach (nie wnikam czy było to Atari, Commodore, Spectrum czy jeszcze coś innego) proste środowisko programistyczne było dostępne od ręki. A teraz?”

a teraz od wieków w windzie jest WSH, od niedawna powershell, w linuxach bash… oj bez GUI? no to TCL … ale po co w ogóle szukać po jakiejś niszy? czemu nie Java lub .NET – pierwsze prawdziwie języki obiektowe? być może ponieważ:

“Pomijam już to, że środowiska programistyczne zazwyczaj są olbrzymimi pakietami oprogramowania, które zachowują się nieraz tak, jakby były samodzielnymi systemami.”
oraz
Pomijając kwestie środowiska, programowanie w XXI wieku nie jest tak proste jak kiedyś. Dawniej dało się napisać program mieszczący się w jednym pliku, bez tony #include i innych Using.

nie prawda. do napisania ‘hello world’ potrzebujesz dokładnie tylko samo kodu – no ok. z jednego includa trzeba dodać. i bardzo dobrze. ale jeśli chcesz coś narysować, napisać lub skorzystać np z sieci – kiedyś musiałeś napisać toooooonę kodu – teraz dołączasz bibliotekę, która i tak działa o niebo lepiej niż większość by to sama zrobiła. i jest przenośne. zamiast uczyć się ‘jak coś działa’ [np. przebijanie się przez RFC od TCP/IP] sqpiasz się na logice – w końcu developer nie musi być architektem. równie dobrze można powiedzieć, że najlepszy był assembler. po co mam pisać algorytm na rysowanie koła, skoro mogę po prostu napisać rysujOkrag(10) q:
co do kompilatora – nie trzeba instalować visual studio – może owszem, microsoft ma taką politykę, że .net kojarzy się z VS, ale przecież wystarczy dobry edytor z podkreślaniem składni [np. pspad] – zarówno do javy jak i .neta i zainstalowany framework/VM. nie jestem ‘na bieżąco’ ale są małe środowiska do obu tych języków – po szybkim googlaniu np. tutaj. małe, szybkie, do pierwszych zabaw wystarczą – wcale nie trzeba SQL ani pierdyliona dodatków.

Tylko, czy przypadkiem nie stało się tak, że zginęła w tym radość z napisania czegoś, co działa? Czy dzisiaj dziesięciolatek ma szansę siąść i napisać kilka albo kilkadziesiąt linii kodu, które zapytają o imię i wyświetlą okienko, w którym to imię zostanie wstawione w komunikat "Jasio umie programować!"?

imho – nie. co więcej – ma szansę to zrobić bez problemu, ponieważ to nie jest na tym etapie kwestia języka tylko nauczyciela oraz kompilatora. taka aplikacja to w javie tyle samo kodu w VB – a jeśli jest go więcej wizualnie, to i tak ‘sprytny edytor’ doda wszystko co potrzebne na początek – a co to oznacza można wytłumaczyć później.
różnica polega jednak na tym, że jak ktoś się zacznie uczyć języków strukturalnych, a już nie-daj-wielki-informatyku takich archaizmów jak BASIC, to potem będzie musiał się na nowo uczyć obiektowych. wiem – bo sam przez to przeszedłem i przełamanie sposobu myślenia jest dość bolesne. developerem nie zostałem [czego trochę żałuję, ale tak się potoczyło], ale miałem okazję kombinować w różnych wynalazkach – logo, basic, pascal, c, c++, java, .net, php, vbs+hta, sql, vba, fortran, c-MPI, shellowe cmd, bash itd – i po wszystkich przejściach, zakochałem się w obiektowości. dla tego z resztą tak dobrze gada mi się z AD a tak bardzo nie znoszę poronionego SQL. imho warto zainwestować czas od razu w coś, co będzie przyszłościowe, zamiast babrać się w oldschoolu. nie twierdzę, że to nie ma wartości edukacyjnych, ale to ślepa uliczka i pewne zderzenie z rzeczywistością jeśli ktoś w tym kierunq będzie podążał.

“Mówiąc w największym skrócie: Jestem za powrotem BASICa do łask!”

w-życiu-never! (;

jeśli chodzi o 1o latków – ale nie tylko – to polecam grę CeeBot – imho do osób, które chcą efekty zobaczyć najszybciej – docieranie poprzez fabułę jest najefektywniejszy – i nie tylko zobaczymy ‘jaś jest programistą’ ale w ciągu kilq chwil można sterować własnym robotem! Chciałem nawet robić z tego zajęcia, ale licencja edu była za droga na moją kieszeń, a uczelnia nie chciała wydawać ):

n.

czwartek, 9 kwietnia, 2009 - 9:07

Slipstream aktualizacji – Windows XP

Autor: domel | Kategorie: freeware, server, tools, windows

Szperając w sieci znalazłem bosski tool do integracji aktualizacji w WinXP/Server2003/Vista. Nazywa się RyanVM Integrator. Można tworzyć addon/update packi samemu ,ale po co malować trawę na zielono? ;) Tutaj jest taki wypasiony z kupą ficzerów. nic tylko wypalić sobie taką płytkę :D

PS. W pełni integruje się z nLite :D

środa, 8 kwietnia, 2009 - 20:35

KRB_ERR_RESPONSE_TOO_BIG

Autor: kfaz | Kategorie: linux, security, windows

Po zabawie z grupami okazało się, że niektórzy użytkownicy nie mogą wysyłać poczty przez linuxowy serwer SMTP.

W logach AD wszystko było w porządku, użytkownicy się uwierzytelniani i generalnie luz malina, do tego IMAP i POP3 działały bez problemu. Za to w logach Linux pojawiało się AUTH_FAIL i nie bardzo było wiadomo o co chodzi. Debug na Linux powiedział, że datagram Kerberos jest za długi a dokładniej serwer Kerberos odpowiadał komunikatem KRB_ERR_RESPONSE_TOO_BIG. Ponoć coś takiego dzieje się jak użytkownik jest w dużej liczbie grup, jednak u nas problem pojawiał się dla niektórych członków pewnej grupy.

Rozwiązanie, którego wyszukanie zajęło Pstrykowi pół dnia:

  1. Ustawić KRB5 tak żeby używał tylko TCP co teoretycznie powinno rozwiązać problem.
    W pliku krb5.conf należy wpisać
    udp_preference_limit = 1
    Jednak mimo tego Linux cały czas usiłował przesyłać datagramy UDP zamiast pakietów TCP :o przez co cały czas Windows odpowiadało KRB_ERR_RESPONSE_TOO_BIG
  2. Zwiększyć na Windowsowym serwerze Kerberos maksymalny rozmiar datagramu UDP
    HKLM\System\CurrentControlSet\Services\Kdc
    Dopisać REG_DWORD MaxDatagramReplySize i wpisać mu odpowiednio dużą wartość (my wpisaliśmy 10000 - standardowo jest to 2000)
  3. Restart Windows i cieszyć się, że działa :)

Wada: nie róbcie tego na kiepskich łączach bo Kerberos się zagubi jak mu będą ginąć datagramy. U nas to stoi w wydzielonym VLAN do kerberosa pomiędzy serwerem poczty a kontrolerem domeny więc nie ma tego problemu.

Nie ma linków popierających bo to kompilacja dużej liczby artykułów :)
BTW na połączeniu Mac OS X - AD problem też występuje

środa, 8 kwietnia, 2009 - 20:31

A miało być tak pięknie

Autor: kfaz | Kategorie: Mac, curiosity

Spojrzałem na reklamę IBM kontra MacBook Air umieszczoną na w2k.pl i przypomniało mi się co kiedyś pokazywało apple :) Szkoda tylko, że Maci są coraz mniej wyjątkowe i że stoi za nimi coraz więcej marketingu i coraz mniej najlepszego designu :-( Tak, apple schodzi na psy. Gdzie podziało się prawdziwe pionierstwo? Czemu flagowym produktem jest zacofany technologicznie i uzależniony od zakupów w iTunes iPhone?

Tak dla przypomnienia jaką idę zabili z razem z wypuszczeniem Air’a.

Ktoś pamięta to?

A co mamy teraz

środa, 8 kwietnia, 2009 - 19:19

Przenoszenie nieaktywnych kont do innego OU

Autor: kfaz | Kategorie: script/developer, windows

Trzeba było znaleźć wszystkich użytkowników, którzy nie logowali się od dłuższego czasu i przenieść ich do innego OU.
Problemy jakie się pojawiły to wartość atrybutu LastLogonTimeStamp, która jest specyficzna (liczba milisekund od epoki) i przenoszenie obiektów w AD. O ile pierwsze było proste do wygooglania o tyle z drugim strasznie ludzie kombinują, piszą miliony linii kodu i generalnie żadne z tych rozwiązań mi się nie podobało. Chwila samodzielnego kombinowania, trochę rzeźby i olśnienie w postaci, że PowerShell to przecież… shell :) i że działają w nim komendy commandlinowe takie jak np. dsmove :)

Poniżej skrypt, który znajduje wszystkich w danym OU , którzy nie logowali się od 14 miesięcy i przenosi ich od OU inactive. Minimalne wymagania: domena w trybie “Windows Server 2003”

# script finds all users in specified OU who haven’t logged for last n months # and moves theirs accounts to another OU # Author Kuba Siatkowski http://interkreacja.pl/
$howoldallowed = 14; #maximum time since last logon (months) $dom ="LDAP://OU=sourceou,DC=yourdomain,DC=com,DC=pl"; #search path $newparent ="OU=inactive,DC=yourdomain,DC=com,DC=pl"; #destination path for unused accounts #$Root = New-Object DirectoryServices.DirectoryEntry $strROOT $Root = New-Object DirectoryServices.DirectoryEntry $Dom $Searcher = New-Object DirectoryServices.DirectorySearcher $Searcher.SearchRoot = $root $searcher.Filter = (&(objectClass=User)(!(objectClass=Computer))); $users = $searcher.findAll(); $lastallowed = [DateTime]::Now.AddMonths($howoldallowed * (-1)); foreach ($user in $users) { if (!($user.Properties.lastlogontimestamp -eq $Null)){ $lastlogon = [DateTime]::FromFileTime([Int64]::Parse($user.Properties.lastlogontimestamp)); if (($lastlogon -lt $lastallowed)){ write-host $user.Properties.cn “; -NoNewLine; write-host $lastlogon ; -NoNewLine; write-host $user.Properties.distinguishedname; dsmove $de.distinguishedName -newparent $newparent } } else { write-host $user.Properties.cn never logged on; } }
środa, 8 kwietnia, 2009 - 19:11

MfcMapi: Niskopoziomowe grzebactwo w skrzynkach Exchange 2003/2007

Autor: wAsyL | Kategorie: exchange, tools

Czasami mamy potrzebę pogrzebania w czyjejś skrzynce i sprawdzenia paru wartości bądź naprawienia czegoś. Genialnym narzędziem do tych celów jest MfcMapi. Program, który powstał jako przykład użycia MAPI rozrósł się do porządnego narzędzia pozwalającego na niskopoziomowy dostęp do skrzynek i folderów publicznych na serwerach Exchange. Genialne jest to, że własności obiektów są opisane dzięki czemu w powiązaniu z Microsoft Exchange Server 2007 Protocol Documentation wiadomo o co kaman (czasami nie do końca ;) ). Niesamowicie ułatwia to rozczajenie o co chodzi i pisanie aplikacji opartych na serwerze Exchange takich jak np ta: http://biuroprasowe.tp.pl/pr/111750/wirtualna-recepcja-juz-w-ofercie-orange ;)

 A teraz mały przykładzik dla wnikaczy, w innym poscie skrobnę jak do tego dotrzeć. Na obrazku poniżej widzimy zdekodowane opcje użytwkownika OWA 2007:)

MfcMapi: w akcji

środa, 8 kwietnia, 2009 - 16:07

Ustawianie msSFU30GidNumber dla wszystkich grup w domenie

Autor: kfaz | Kategorie: script/developer, windows

Linuxy potrzebują parametru msSFU30GidNumber żeby widziały grupy z Active Directory. Do tej pory pojedyńcze MsSFUGidy robiliśmy ręcznie z ADSIEdit, jednak kiedy przyszło ponad sto nowych grup to trzeba było to jakoś oskryptować.

Skrypt poniżej:

  1. znajduje maksymalny MsSFUGid w domenie
  2. wszystkim grupom, które nie mają msSFUGID przypisuje kolejne numery 

Jego wadą jest to, że dodaje Gidy wszystkim grupom ale to można zmienić np. poprzez ustawienie odpowiedniego roota przed drugą pętla.

$Root = New-Object DirectoryServices.DirectoryEntry $strROOT
$Searcher = New-Object DirectoryServices.DirectorySearcher
$Searcher.SearchRoot = $root
$searcher.Filter =  "(&(objectClass=Group))";
$numer = 0;
$gid ;
$groups = $searcher.findAll();
foreach ($group in $groups)
{
   $de = New-Object DirectoryServices.DirectoryEntry $group.Path;
   $gid = [int]$de.msSFU30GidNumber.ToString();
#  write-host $gid ";" -NoNewLine;
#  write-host $de.name;
   if ($numer -lt $gid )
   {
     $numer = $gid;
#    $numer;
   }
}
$numer++;

foreach ($group in $groups)
{
  $de = New-Object DirectoryServices.DirectoryEntry $group.Path;
  $gid = [int]$de.msSFU30GidNumber.ToString();
  if ($gid -eq 0)
  {
    $de.msSFU30GidNumber = $numer;
    $de.SetInfo();
    write-host $numer ";" -NoNewLine;
    write-host $de.name;
    $numer++;
  }
}

środa, 8 kwietnia, 2009 - 15:57

IIS6 i Apache na jednym serwerze

Autor: kfaz | Kategorie: HOWTO, server, windows

Wydaje sie być banalnie proste. Dwa rożne porty albo dwa rożne adresy IP, ja wybrałem drugi scenariusz i natknąłem sie na jeden problem. Mianowicie IIS nawet jak ma skonfigurowany site na jeden adres IP (np. 10.10.10.101 : 80 ) to i tak będzie nasłuchiwał na wszystkich adresach i otworzy sobie 0.0.0.0 : 80 czym skutecznie przyblokuje Apacha działającego na innym IP (powiedzmy 10.10.10.201 : 80 ).

Aby temu zapobiec trzeba przestawić całego IIS żeby słuchał tylko na konkretnych adresach IP (wtedy zapomnijcie o skonfigurowaniu 10.10.10.201 :8080 obsługiwanego przez IIS ). Potrzebne nam będzie do tego narzędzi httpcfg z Support Tools (jesli jeszcze tego nie masz to zainstaluj natychmiast :) ). A potem:
httpcfg query iplisten powie nam na jakich adresach nasłuchujemy
httpcfg set iplisten -i 10.10.10.101 ustawi nam jeden adres
restartujemy IIS poprzez net stop http, net start http i mamy pozdrowiony temat.

Więcej na ten temat tutaj

środa, 8 kwietnia, 2009 - 15:55

Podłączanie sie do sprzętu Cisco z MacBooka

Autor: kfaz | Kategorie: HOWTO, Mac, hardware

Krok 1. posiadać port RS232 :-) czyli kupić sobie przejściówkę USB to RS232
Krok 2. zainstalować sterowniki i tu pojawia się problem bo chiński producent pewnie nie ma swojej strony z supportem a nawet jak ję ma to nie ma na niej sterowników do Mac OS X. Na szczęście (prawie)wszystkie przejściówki używają jednego scalaka dlatego powinien nam zadziałać sterownik IOGear.
Krok 3. zainstalować terminal. ZTerm wydaje się dawać sobie całkiem nieźle radę :)
Krok 4.
switch#show version
Cisco IOS Software, C3560 Software (C3560-IPSERVICES-M), Version 12.2(25)SEB4, R
ELEASE SOFTWARE (fc1)
Copyright (c) 1986-2005 by Cisco Systems, Inc.
Compiled Tue 30-Aug-05 14:19 by yenanh

ROM: Bootstrap program is C3560 boot loader
BOOTLDR: C3560 Boot Loader (C3560-HBOOT-M) Version 12.2(25r)SEC, RELEASE SOFTWAR
E (fc4)

Switch uptime is 45 minutes
System returned to ROM by power-on
System image file is "flash:c3560-ipservices-mz.122-25.SEB4/c3560-ipservices-mz.
122-25.SEB4.bin"

cisco WS-C3560-24TS (PowerPC405) processor (revision D0) with 118784K/12280K byt
es of memory.
Processor board ID CAT1022N1FU
Last reset from power-on
1 Virtual Ethernet interface
24 FastEthernet interfaces
2 Gigabit Ethernet interfaces
The password-recovery mechanism is enabled.

–More–

środa, 8 kwietnia, 2009 - 15:47

Pozwalanie użytkownikom na uruchamianie/zatrzymywanie serwisów

Autor: kfaz | Kategorie: HOWTO, script/developer, windows

Mamy na stacji zainstalowanego Apacha, Network Inspectora czy Flash Server i nie chcemy żeby chodziły one przez cały czas i bezsensownie zżerały nam zasoby. Chcemy pozwolić użytkownikowi na uruchamianie/zatrzymywanie serwisów i nie nadawać mu zbędnych uprawnień. Najprościej jest to zrobić ustawiając z poziomu domeny odpowiednią polisę która ustawi odpowiednie ACL na dany serwis (tak serwisy też mają ACL :o ).
Co jednak zrobić w momencie gdy komputer nie jest w domenie? Zawsze wydawało mi się, że wszystko da się ustawić w Local Security Policy. Windows + R wpisuję secpol.msc (albo gpedit.msc, jak kto woli ;) ) enter i nie ma serwisów :-o . Wszystko wskazuje na to, że nie da rady tego ustawić lokalnie jednak z pomocą przychodzi Security Configuraration and Analysis (dla nieświadomych start -> run -> mmc -> ctrl+m -> add -> Security Configuraration and Analysis ). Dodaję nową bazę, importuję template (dla bezpieczeństwa polecam setup security.inf), analizuję komputer, po czym kiedy już pokaże mi się drzewko wchodzę w System Services wybieram interesujący mnie serwis i ustawiam mu ACL’ki :) .
Ciekawe czemu jest to wycięte z interfejsu w secpol.msc? Po co wycieli coś co i tak da się ustawić? bez sensu…

Po tem jeszcze warto dać użytkownikom narzędzie pozwalające na wygodnie uruchamianie/zatrzymywanie serwisów. Może to być prosty batch wyglądający mniej więcej tak:
NET START "Nazwa serwisu"
albo tak:
NET STOP "Nazwa serwisu"

A gdybyśmy chcieli pisać to w Visual Basicu (np. po to żeby sprawdzać coś zanim nasz serwis wstanie, zrobić ładny interface graficzny itp. itd.) to przyda się ten kawałek kodu:

‘ Uruchom zatrzymaj serwis
option explicit
dim queryString
dim Service, ServiceSet

queryString = "select * from Win32_Service where Name=’Nazwa serwisu’ and State=’Stopped’"
Set ServiceSet = GetObject("winmgmts://.").ExecQuery(queryString)

if ServiceSet.Count <> 0 then
WScript.echo “Uruchamiam serwis”
for each Service in ServiceSet
Service.StartService()
next
else
WScript.echo “Jesteś kretynem, serwis już działa”
end if

środa, 8 kwietnia, 2009 - 15:44

Synchronizacja czasu z NTP

Autor: kfaz | Kategorie: Mac

Maci podłączone do domeny, wszystko działa pięknie. Sprawdzamy czy działa Windows (dual-boot), restartujemy kompa pod Mac OS X. Wpisujemy login/hasło (poprawne), chwile czekamy, ekran się trzęsie i tyle. Na konto lokalne można się zalogować bez problemu tylko czas jest jakiś dziwny i przesunięty o 2 godziny.
Wiadomo, Kerberos ma rozjechany czas i przez to bilety się momentalnie przedawniają. Przyczyna rozjechania czasu też jest prosta, OS X jak każdy szanujący się system ustawia hardware clock w GMT i potem softwarowo dodaje/odejmuje czas żeby dostosować się do strefy czasowej. Windows za to ustawia hardware clock na czas lokalny.
No dobra, problem powinno nam załatwić ntp ale w /etc/ntp.conf wszystko jest skonfigurowane poprawnie i dalej nie działa.
Szybkie wstukanie
root# ntpdate
Looking for host ntp.pjwstk.edu.pl and service ntp
host found : ntp.pjwstk.edu.pl
14 Feb 14:15:05 ntpdate[1420]: the NTP socket is in use, exiting

i problem zajętego socketu :-) Szybkie śledztwo i okazuje się, że port jest zajęty przez ntpd, który powinien automatycznie synchronizować czas z serwerem ntp. Jedynym problemem jest to, że ntpd synchronizuje czas powoli małymi krokami tak żeby system nie zagubił się jak nagle wypadnie mu kilka godzin albo syslog się cofnie. Czyli może za kilka dni czas się zsynchronizuje i logowanie do AD zacznie działać :-)
Rozwiązanie jest proste :D zabić ntpd i zsynchronizować ręcznie czas z ntp.

Z Pstrykiem napisaliśmy coś takiego:

root# cat /usr/sbin/ntpupdate.sh
#!/bin/bash

/usr/sbin/ntpd
/usr/bin/killall ntpd

RET=1
TIME=15
while [ $RET -ne 0 ] && [ $TIME -gt 0 ]; do
/usr/sbin/ntpdate adres.serwera.ntp >> /var/log/ntpupdate 2>&1
RET=$?
TIME=$(($TIME-1))
sleep 1
done

Po czy do /etc/rc dopisaliśmy:

# By Pstryk & Kfaz ;)
/usr/sbin/ntpupdate.sh

Kolejny workaround, dziwny ale działający :-)
Podobno nowe sterowniki dla Windows z BootCamp poprawiają ten problem i Windows nie zmienia czasu w hardware clock

środa, 8 kwietnia, 2009 - 15:41

Odmontowywanie dysków Windowsowych na dual boot’ach

Autor: kfaz | Kategorie: Mac

Scenariusz jest prosty. Maki mają triple-boot (Mac OS X, Win XP, Linux) i użytkownicy nie mogą mieć dostępu do innych partycji systemowych z poziomu Mac OS X. Chociażby po to żeby nie grzebali w plikach konfiguracyjnych, nie wyciągnęli bazy SAM czy żadnych innych rzeczy, których przeczytanie nie byłoby dla nas zbyt miłe :) Sprawa wydaje się banalnie prosta, wystarczy, tak jak w poprzednich wersjach Mac OS X, przeedytować /etc/fstab i pozamiatane. Jednak po otwarciu tego pliku okazuje się, że coś się zmieniło i pokazuje się coś takiego:
IGNORE THIS FILE.
This file does nothing, contains no useful data, and might go away in
future releases. Do not depend on this file or its contents.

i weź tu człowieku bądź mądry kiedy zamiast jednego statycznego pliku pojawia się automounter (/sbin/autodiskmount), który oczywiście jest binarką :) No dobra, ale automounter skądś jest wywoływany. W tym przypadku będzie to /etc/rc.netboot gdzie montowane są wszystkie dyski podczas instalacji. Po napisaniu kilku if’ów okazało się, że mój szczwany plan z filtrowaniem co montujemy nie zadziałał :-( a że czas naglił trzeba było to załatwić w inny sposób :-) Mały (niezbyt elegancki) workaround polega na odmontowaniu dysków kiedy automounter już je podmontuje :-D . Aby to zrobić wystarczyło w /etc/rc dopisać trzy linijki:
#odmontowanie dyskow windowsowych
umount /dev/disk0s2
umount /dev/disk0s6

Wiem, że to nie jest najsprytniejszy patent ale działa ;-)

środa, 8 kwietnia, 2009 - 15:38

Keyring a konto domenowe

Autor: kfaz | Kategorie: Mac

Mój breloczek na koncie domenowym zabezpieczony jest hasłem z Active Directory, ustawienie standartowe dzięki temu mam prawie single sign-on, hasło domenowe zabezpiecza moje certyfikaty itd.
Problem pojawia się kiedy hasło domenowe się zmieni z poziomu czegoś innego niż nasz stacja pracująca pod Mac OS X. Po takiej zmianie logujemy się używając nowego hasła domenowego i zaraz po zalogowaniu musimy wpisać hasło do breloczka, które jest… naszym starym hasłem ;) Aby uniknąć tej upierdliwej czynności i logować się tylko raz należy zmienić sobie hasło do breloczka korzystając z Keyring Access. Rzecz prosta ale irytująca. Chociaż patrząc z drugiej strony w Windows jest podobny problem (utrata lokalnych certyfikatów w momencie resetowania hasła do konta lokalnego).

środa, 8 kwietnia, 2009 - 15:25

Przydatne narzędzia do zabawy netInfo z poziomu konsoli

Autor: kfaz | Kategorie: Mac

Dzisiaj instalując Oracle na Mac OS X znalazłem parę fajnych narzędzi pozwalających na dostanie się do netInfo z poziomu konsoli i wpisanie wszystkiego bez latania po drzewkach w interfejsie graficzny. Super sprawa dla osób robiących coś przez SSH albo zakładających konta za pomocą skryptów.

Manipulacje na obiektach w katalogu:
Tu z pomocą przychodzi nam narzędzie nicl. Pozawala ono m.in. na tworzenie obiektów, ich kasowanie, modyfikacje, przeszukiwanie, czytanie i kopiowanie. Jeśli kiedykolwiek będziesz odtwarzać swoje netInfo z backupu to z pewnością nicl będzie do tego niezbędne. Składnia jest prosta: nicl [options] datasource [command], na przykład założenie użytkownika wygląda tak
# nicl . -create /users/loginname
# nicl . -append /users/loginnameuid 601
# nicl . -append /users/loginname gid 600
# nicl . -append /users/loginname shell /bin/bash
# nicl . -append /users/loginname home /Users/loginname
# nicl . -append /users/loginname realname "Imię i nazwisko usera"

Potem przyda się jeszcze zmienić komuś hasło:
# passwd loginname
i mamy wszystko gotowe.
Katalog domowy stworzy się sam przy pierwszym logowaniu na podstawie tego co jest w /System/Library/User Template . Z szablonami oczywiście można się pobawić ale zostawie to sobie na oddzielny wpis :)
Każdy bardziej dociekliwy może sobie poczytać o tym narzędziu wpisująć w konsoli man nicl :)

środa, 8 kwietnia, 2009 - 14:08

Powitanie

Autor: kfaz | Kategorie: OT, w-files

Jako, że jestem tu nowy to wypadało by jakoś zacząć i się przywitać. Ponieważ przenoszę się z innego miejsca to pozwolę sobie przerzucić notki więc proszę się nie zdziwić jak w najbliższym czasie pojawi się wysyp notek podpisanych przeze mnie, nie jestem aż tak płodny i nie zdominuję w-files swoją twórczością.
A czego możecie się po mnie spodziewać? Czym są dla mnie blogi techniczne? Myślę, że pisząc publicznie o tym co robię staram się podzielić swoimi doświadczeniami z innymi i chcę gdzieś spisać to co zrobiłem żeby potem nie robić tego od nowa, raczej nie staram się być opiniotwórczy, lansować pewnych produktów czy udowadniać wyższości A nad B (tu proszę wstawić nazwy wybranych świąt, systemów operacyjnych czy producentów procesorów)

wtorek, 7 kwietnia, 2009 - 16:33

Nowości w Windows Server 2008 R2 – AD DS: bezpołączeniowe dołączanie do domeny (Offline domain join)

Autor: nExoR | Kategorie: article

art jak w temacie (:

n.

wtorek, 7 kwietnia, 2009 - 9:18

TeraCopy i FC

Autor: nExoR | Kategorie: tips'n'tricks, tools

ostatnio podpatrzyłem fajny tool - TeraCopy. niestety ‘free for home users’ więc na firmowego lapa 15€ trzeba będzie poświęcić. jak nazwa sugeruje tool służy do kopiowania i przenoszenia plików i nie byłoby w tym nic specjalnie wyjątkowego poza ważnym szczegółem - ładnie integruje się z systemem, zastępując gówniane, systemowe kopiowanie, dodając kolejkowanie, sumy kontrolne itp, itd - a więc wszystko to, czego braqje. [ps. testuję go na w7]

za chwilę trafiłem na problem - freecommander [freeware, ostatni update o2.2k9] nadal korzysta z systemowych libów. okazuje się jednak, że da się to ładnie da się problem rozwiązać, modyfiqjąc plik ini:

standardowa lokalizacja pliq: %userprofile%\AppData\Roaming\FreeCommander\freecommander.ini
należy zamknąć aplikację a następnie dodać dwie linijki:

FileMovePrg=C:\Program Files\TeraCopy\TeraCopy.exe Move *%ActivSelAsFile% "%InactivDir%"
FileCopyPrg=C:\Program Files\TeraCopy\TeraCopy.exe Copy *%ActivSelAsFile% "%InactivDir%"

[oczywiście podając odpowiednie ścieżki do teracopy]

najs end łorking (;

n.

poniedziałek, 6 kwietnia, 2009 - 19:32

SIP [OCS]

Autor: nExoR | Kategorie: exchange, tips'n'tricks

SIP nie pozwala na znaki z poza standardowego alfabetu łacińskiego [na znaki diakrytyczne]. efekt może być nieco mylący, ponieważ sam interfejs nie ostrzega - podczas włączania użytkownikom funkcjonalności OCS można wybrać automatyczne tworzenie nazwy SIP domain jako imię.nazwisko@siddomain. wizard pokazuje wszystko jako ’success’ a potem zaczynają się pytania typu ‘czemu po rozwinięciu adresów grupy nie widać wszystkich osób?’.
problem jest dość łatwo zdebugować, ponieważ w eventlogu na serwerze pojawiają sie warningi [nie errory] informujące, że jest problem w synchronizacji adresu SIP.
przypadek na jaki trafiłem był dość ciekawy i zacząłem debugowanie od złego narzędzia - ADSIEdit. po zmianie adresu SIP na nowy [np. z jozef.kot@domain.internal na józef.kot@domena.com], user oczywiście nie mógł zalogować się na nowy adres. sprawdziłem ADSIEditem atrybut msRTCSIP-DomainName - i wszystko niby ok. a mimo to user nadal jest w stanie zalogować się na stary adres. początkowo myślałem, że to może opóźnienie replikacji, ale nic z tego… w końcu sięgnąłem po najprostsze narzędzie - czyli eventvwr i wszystko stało się jasne.
dowodzi to:

  • żeby mimo wszystko zaczynać od podstawowych narzędzi [nawet jeśli spodziewa się poważniejszych problemów]
  • że OCS pomimo tego, że integruje się z AD i z niego sczytuje informacje to realnie korzysta z danych w SQL

niestety inne kwestie nie są takie proste do zdebugowania - zwłaszcza komunikacja pomiędzy komponentami takimi jaki Edge czy WebAccess to długie godziny ślęczenia i sprawdzania na poziomie protokołu. wszelkie odstępstwa od podręcznika okazują się generować problemy ):\

n.

poniedziałek, 6 kwietnia, 2009 - 15:40

Nowości w Windows 2008 R2 – AD DS Recycle Bin oraz skrypty PowerShell dla AD

Autor: nExoR | Kategorie: article

ostatnio na newsy nie wiele mam czasu ): za to zmobilizowałem się do skrobnięcia kilq bardziej konkretnych artów – pierwszy z nich jest już dostępny.

n.

poniedziałek, 6 kwietnia, 2009 - 11:43

Google Data Center

Autor: cabi | Kategorie: news

Trochę ciekawostek z serwerowni google.


źródło