Życie (czyt. mąż) mnie zmusiło do wysiłku umysłowo - klawiaturowego:
Dwa komputery na Debianie testowym i stabilnym, połączone routerem z dynamicznym nadawaniem numerów IP przez tenże router. Do jednego (nazwijmy go pecet) jest podłączona drukarka HP LaserJet 1100, która ma złącze równoległe LPT, a drugi komputer to laptop (niech mu będzie laptop), który złącza równoległego nie ma, ponieważ obecna moda na USB na takie fanaberie nie pozwala. Dodatkowo, laptop nie ma napędu dyskietki, a pecet nie ma gniazd USB.
Jak uprzejmie poprosić obydwa komputery, aby zezwoliły na wzajemne podglądanie użytkownikom swoich katalogów domowych na dyskach, ewentualnie kopiowanie plików, a na dodatek, jak rozwiązać sprawę drukowania z laptopa? Przy okazji chciałabym zachować zalety niemyślenia o numerach IP, które miałyby się zmieniać według woli routera.
Mądrzy ludzie mało piszą o łączeniu dwóch Linuksów Sambą, ale ja się uparłam i jako, że gdzie diabeł nie może, tam babę pośle, to i doszłam do kilku wniosków i skutków. Oczywiście zajęło mi to masę czasu i energii, mądrzy ludzie w internecie opisali rozwiązania wcześniej, ale przynajmniej chyba od tego nie zgłupiałam, nawet, jeśli kilka siwych włosów mi przybyło. Aby inni już nie musieli siwieć, napisałam ten tekst.
Na początek trzeba poaktualizować system, aby uniknąć większych niespodzianek. Na przykład przejście z x-serwera XFree86 na Xorg jest bardzo emocjonujące i lepiej tych emocji nie mieszać z połączeniem dwóch komputerów.
Potem zostaje zainstalować na obu komputerach wszystko, co ma jakikolwiek rozsądny związek z Sambą:
Potem trzeba zainstalować inne dodatki sieciowe, których brak paskudnie utrudnia wykonanie zadania, szczególnie rozpoznawania się komputerów po swoich nazwach, nie po numerach:
Ja używałam do tego menedżera pakietów Synaptic, ale można używać, tego, co kto lubi.
Potem należy wykonać pracę ręczną na obydwu komputerach po zalogowaniu się jako root.
W pliku /etc/hosts.allow trzeba dopisać:
ALL:pecet lub ALL:laptop (w zależności od maszyny)
W pliku /etc/nsswitch.conf zmienić
z:
hosts: files dns
na:
hosts: files dns wins
z:
networks: files
na:
networks: files dns wins
plik /etc/hosts skopiować jako /etc/lmhosts (skopiować, nie zmienić nazwę!)
Sprawdzić zawartość pliku /etc/lmhosts - nie powinno w nim być do zewnętrznego
adresu IP routera - nas interesują tylko wewnętrzne adresy w naszej sieci. A poza
tym nagle by się okazało, że 2 komputery powołują się na ten sam numer IP i
chyba by system zgłupiał.
Zostaje nam główna zabawa: Samba właściwa.
/etc/samba/smb.conf - trochę przegrzebany debianowy standard. Co jest ciekawe: obydwa komputery mają udawać, że są serwerami wins. To samo można uzyskać chyba przez okienkowy SWAT.
[global] workgroup = BASIA netbios name = pecet server string = pecet wins support = yes dns proxy = yes name resolve order = lmhosts host wins bcast log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d security = user # encrypt passwords = true passdb backend = smbpasswd unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n . load printers = yes # lpr(ng) printing. You may wish to override the location of the # printcap file ; printing = bsd ; printcap name = /etc/printcap # CUPS printing. See also the cupsaddsmb(8) manpage in the # cupsys-client package. ; printing = cups ; printcap name = cups # When using [print$], root is implicitly a 'printer admin', but you can # also give this right to other users to add drivers and set printer # properties ; printer admin = @ntadmin socket options = TCP_NODELAY restrict anonymous = yes domain master = yes ldap ssl = No server signing = Auto [homes] comment = Home Directories browseable = yes create mask = 0775 directory mask = 0775 [printers] comment = All Printers browseable = yes path = /tmp printable = yes create mask = 0700 [print$] comment = Printer Drivers path = /var/lib/samba/printers
Teraz na obu maszynach trzeba dodać użytkowników Samby, którzy powinni mieć oprócz tego swoje normalne konta na maszynach, do i z których chcieliby się łączyć:
smbpasswd -a basia New SMB password: ******** Retype new SMB password:********
Po restarcie (wiem, mądrzy użytkownicy Linuksa NIGDY nie restartują swoich maszyn, ale...) powinno się udać zamontowanie zdalnego katalogu domowego użytkownika. Do tego świetnie służy moja ulubiona obrazkowa przeglądarka smb4k. A jeśli nie? To znaczy, że trzeba pogrzebać w konfigach i w Google.
Dzielona Neostrada - po drodze 2 rutery, w tym jeden o ograniczonych możliwościach - nie
mogłam znaleźć, jak wpisać numer serwera DNS TePSA, a to powodowało, że łączność z
internetem była tylko po numerach IP, system nie rozpoznawał nazw.
Przy działającym internecie z DHCP ręczne grzebanie w pliku /etc/resolv.conf nie miało sensu, bo
plik był tworzony (i ewentualnie nadpisywany) automatycznie.
Znalazłam rozwiązanie: w pliku /etc/dhcp3/dhcp3.conf odkomentowałam opcję
"prepend" i wpisałam numer serwera DNS o który mi chodziło.
Zadziałało jak należy - po restarcie sieci ten numer pojawił się w /etc/resolv.conf i
dostęp do nazw w internecie był prawidłowy.
pecet:/home/basia# nmblookup laptop querying laptop on 192.168.2.255 192.168.2.169 laptopNiby działa, ale:
---192.168.5.23 ping statistics--- 4 packets transmitted, 0 packet received, 100% packet loss
Inna, zbliżona przykrość:
mount error: could not find target server. TCP name laptop not found
Czyli komputery rozpoznają się po numerach, ale nie po nazwach.
Proponuję wrócić do początku tego tekstu i sprawdzić, czy wszystko jest zrobione.
Tak się kończyła wersja z końca roku 2008, ale życie przyniosło nowe przygody w postaci nowych uaktualnień...
Wiosną 2009 nasze komputery po uaktualnieniach praktycznie przestały się między sobą
komunikować. Przyczyny były różne:
/etc/inetd.conf miał wyłączony netbios
samba miała nowy zestaw domyślnych opcji, a ostatnie uaktualnienia wymieniały
/etc/samba/smb.conf na nowy
w /etc/cups/printers.conf z jakiegoś powodu pojawiło się żądanie autoryzacji
przy drukowaniu do niektórych drukarek.
Muszę przyznać, że zanim doszłam do rozsądnego rozwiązania, wykonałam wiele chaotycznych czynności, gdzieś na pograniczu szamaństwa, bo z powodu braku możliwości zrestartowania całej sieci w pracy, wyniki eksperymentów poznawałam dopiero następnego dnia.
Na wszelki wypadek nawet zastosowałam radę:
http://blog.dhampir.no/content/cifs-vfs-no-response-for-cmd-n-mid.
Przynajmniej nie zaszkodziła.
Plik /etc/samba/smb.conf po przejściach:
# Samba config file created using SWAT # from 127.0.0.1 (127.0.0.1) # Date: 2007/12/27 15:20:57 [global] workgroup = BASIA netbios name = PECET server string = %h server obey pam restrictions = Yes passdb backend = smbpasswd passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* . syslog = 0 log file = /var/log/samba/log.%m max log size = 1000 dns proxy = yes wins support = Yes panic action = /usr/share/samba/panic-action %d include = /etc/samba/dhcp.conf printing = cups printcap name = cups load printers = yes use client driver = yes # options for smbclient client lanman auth = yes client ntlmv2 auth = yes client plaintext auth = yes [homes] comment = Home Directories valid users = %S create mask = 0777 directory mask = 0777 # browseable = No browseable = yes [printers] comment = All Printers path = /var/spool/samba create mask = 0775 printable = Yes browseable = Yes # guest ok = yes [print$] comment = Printer Drivers path = /var/lib/samba/printers
Rozwiązanie problemu z hasłem przy drukowaniu:
http://brainextender.blogspot.com/2009/01/ubuntu-intrepid-too-many-failed.html
Ufff... Na razie wszystko działa...
Powodzenia :-)
Basia 20.05.2009
==============================