ďťż

SMB

Lemur zaprasza

SMB-Howto

Autor:David Wood,
dwood@plugged.net.au
v1.1, 25 Marca 1999
Wersja polska: Bartosz Maruszewski
B.Maruszewski@jtz.org.pl
v1.2, 18 Sierpnia 1999

Jest to dokument z serii HOWTO (Jak To Zrobić). Opisuje on jak używać
Server Message Protocol (SMB), zwanego też Session Message Block,
NetBIOS lub LanManager w Linuksie.
Dokument ten został napisany w standardzie ISO-8859-2.
Oryginał można znaleźć pod adresem
ftp.icm.edu.pl w katalogu /pub/Linux/sunsite/docs/HOWTO.

1. Wprowadzenie.


Jest to dokument z serii HOWTO (Jak To Zrobić). Opisuje on jak
używać w Linuksie Server Message Protocol, zwanego też Session
Message Block, NetBIOS lub LanManager. Dokument ten skupia się na
Linuksie, jednak Samba działa na większości systemów uniksowych.
Dokument ten jest prowadzony przez Davida Wooda
dwood@plugged.net.au. Wszelkie dodatki, modyfikacje lub
poprawki mogą być przesłane do mnie, aby je później umieścić w
następnej wersji.
O wiele więcej dokumentacji znajduje się na stronie WWW Samby pod
adresem
www.samba.org.
Możesz także korzystać z grupy dyskusyjnej comp.protocols.smb
lub polskojęzycznej pl.comp.os.linux.sieci.
Protokół SMB używany jest przez Microsoft Windows 3.11, NT i 95/98
aby współdzielić zasoby dyskowe i drukarki. Maszyny Unix-owe (w
tym także Linux) mogą korzystać z tych zasobów używając narzędzi
stworzonych przez Andrew Tridgella. Przy pomocy narzędzi smbfs
autorstwa Paal-Kr. Engstad (pke@engstad.ingok.hitos.no), Volker
Lendecke (lendecke@namu01.gwdg.de) maszyny uniksowe mogą montować
zasoby udostępniane z Windows.
Są cztery rzeczy, które można zrobić Sambą:


Udostępniać dysk Linux-owy dla komputerów z Windows.
Udostępniać dysk Windows-owy dla komputerów z Linux-em.
Udostępniać drukarkę pod Linux-em dla Windows.
Udostępniać drukarkę pod Windows dla Linux-a.

Wszystko to zostało opisane w tym dokumencie.
Zrzeczenie. Procedury i skrypty albo działały u autora, albo
zostały opisane jako działające przez tych, którzy je napisali.
Różne konfiguracje mogą nie działać z podanymi tutaj informacjami.
Jeśli odkryjesz taką sytuację możesz napisać do autora list z
sugestią na ulepszenie tego dokumentu, ale autor nic nie
gwarantuje. A czego się spodziewałeś ? W końcu autor jest tyklo
konsultantem.
Aby maszyny z systemami Windows 3.x mogły korzystać z SMB muszą
mieć zainstalowany stos TCP/IP i DLL Win32. Oba te pakiety są
dostępne na stronie WWW Microsoftu (
www.microsoft.com).

2. Dalsze informacje.


Dokument ten jest próbą opisania jak skonfigurować na Linux-ie
podstawowe serwisy SMB związane z plikami i drukarkami. Samba jest
bardzo złożonym i kompletnym pakietem. Nie ma sensu, żeby kopiować
tutaj wszystko to co jest zawarte w dokumentacji dla tego pakietu.
Dalszych informacji możesz szukać w:

Dokumentacji do Samby, która jest częścią dystrybucji.
Dystrybucja jest dostępna pod adresem: ftp.icm.edu.pl oraz
ftp.samba.org
HOWTO dotyczącym drukowania (Printing HOWTO)
oraz w mini-HOWTO Print2Win.
Dokumentacja określająca standard protokołu NetBIOS na
TCP/IP.
RFC 1001 - Ogólne zarysy.
RFC 1002 - Szczegółowe specyfikacje.


3. Instalacja.


Po pierwsz, aby używać Samby wszystkie twoje maszyny muszą byc w
jednym segmencie sieci lokalnej i korzystać z protokołu TCP/IP.
Samba nie będzie działać na innych protokołach. Jest to łatwe do
osiągnięcia ponieważ Linux i Windows 95/98/NT są dostarczane z tym
protokołem. Jednak jeśli używasz Windows 3.x, to będziesz musiał
dodać obsługę tego protokołu.
Z usług SMB nie można korzystać poprzez routery. Jeśli chcesz takie
coś zrobić, to musisz ustawić tunel IP, co jest poza tematyką tego
HOWTO.
Najświeższe źródła Samby dostępne są pod adresem
ftp.icm.edu.pl w katalogu /pub/samba. Oryginalny
adres to
ftp.samba.org.
Jeśli instalowałeś dystrybucję Red Hat mogłeś wybrać instalację
Samby jako jedną z opcji. Niektóre inne dystrybycje też oferują
binaria Samby.
Następujące demony są wymagane do pracy z Sambą. Zwykle znajdują
się one w katalogu /usr/sbin i są uruchamiane w momencie startu
systemu albo przez demon inetd. Przykładowe skrypt
znajdują się w sekcji
Uruchamianie demonów.


smbd (Demon SMB) i nmbd (Świadczy usługi nameservera NetBIOS-u)


Zauważ, że serwis nazw oferowany przez demona nmbd różni się od
tego oferowanego przez DNS (serwis nazw domen). Serwis nazw
NetBIOS, to serwis nazw w stylu Windows używany do SMB. Innymi
słowy, to że masz DNS nie oznacza, że Samba będzie umiała
odczytywać nazwy komputerów.
Zwykle w systemie instalowane są następujące binaraia w katalogu
/usr/bin:



smbclient (Klient dla maszyn Unix-owych), smbprint (skrypt do
drukowania na drukarce przyłączonej do hosta SMB), smbprint.sysv
(To samo co wcześniej, ale dla systemu UNIX SVR4), smbstatus
(Wyświetla bieżące połączenia SMB na lokalnym hoście), smbrun
(Główny skrypt do uruchamiania aplikacji na hoście SMB)


Binaria do obsługi systemu plików (smbfs) omówione są w dalszej
części dokumentu.
Dodatkowo zawarty jest w tym dokumencie skrypt o nazwie "print",
który jest pożytecznym dokończeniem skryptu smbprint.
Pakiet Samba jest prosty w instalacji. Ściągnij go z podanego
wcześniej miejsca i przeczytaj plik README znajdujący się w
dystrybucji. Jest jeszcze plik docs/INSTALL.txt, który podaje krok
po kroku co należy zrobić, aby zainstalować Sambę.
Postępując wraz z instalacją, umieść demony w /usr/sbin i binaria
w /usr/bin. Zainstaluj strony do podręcznika systemowego "man" w
/usr/local/man.
Kiedy będziesz instalował pakiet Samba, będziesz musiał podać
miejsce, gdzie ma się znajdować plik konfiguracyjny smb.conf.
Z reguły jest to katalog /etc, ale możesz go umieścić, gdzie ci
się podoba. Dla dalszych instrukcji założymy, że plik
konfiguracyjny umieściłeś w /etc, plik logujący to
/var/log/samba-log.%m i katalog blokujący to /var/lock/samba.
Zainstaluj plik konfiguracyjny smb.conf. Przejdź do katalogu,
gdzie została skompilowana Samba. Zajrzyj do katalogu
examples/simple i przeczytaj plik README. Skopiuj
znaleziony tam plik smb.conf do /etc. OSTROŻNIE !!!
Jeśli masz dystrybucję Linux-a, która miała Sambę i zainstalowałeś
ją to pewnie masz już plik smb.conf w katalogu /etc i lepiej
zacznij od tego pliku.
Jeśli nie chcesz umieszczać pliku konfiguracyjnego w /etc, to
umieść go tam, gdzie chcesz i zrób symboliczne dołączenie:



ln -s /gdzie/jest/smb.conf /etc/smb.conf



4. Uruchamianie demonów.


Dwoma demonami SMB są: /usr/sbin/smbd i /usr/sbin/nmbd.
Możesz je uruchomić przez demona inetd lub jako osobne
procesy. Samba będzie odpowiadać trochę szybciej jeśli jest
uruchomiona jako osobny demon niż z inetd.
W obu przypadkach powinieneś sprawdzić czy w pliku
/etc/services znajdują się takie linie:



netbios-ns 137/tcp nbns
netbios-ns 137/udp nbns
netbios-dgm 138/tcp nbdgm
netbios-dgm 138/udp nbdgm
netbios-ssn 139/tcp nbssn


Upewnij się, że wszystkie są odkomentowane. W zależności od
dystrybucji, możliwe, że będziesz musiał je dodać. Samba nie będzie
w stanie dowiązać się do odpowiednich portów jeśli w tym pliku nie
znajdą się powyższe linie.
Aby uruchomić demony przez inetd umieść następujące linie w
pliku /etc/inetd.conf:



Serwis NetBIOS dla Samby
# netbios-ssn
stream tcp nowait root /usr/sbin/smbd smbd netbios-ns dgram udp wait
root /usr/sbin/nmbd nmbd


Następnie wyślij sygnał HUP do procesu nr 1:


kill -HUP 1 `cat /var/run/inetd.pid`


Dla użytkowników dystrybucji Red Hat.
Aby uruchomić te demony ze skryptów startowych, umieść następujący
skrypt w katalogu /etc/rc.d/init.d/smb i dołącz je
symbolicznie do plików podanych w komentarzu:



#!bin/sh

#
# /etc/rc.d/init.d/smb - startuje i zatrzymuje serwis SMB
#
# Następujące pliki powinny być symbolicznymi dołączeniami do
# tego pliku:
# /etc/rc.d/rc1.d/K35smb (Zatrzymuje serwis SMB podczas
# zamknięcia systemu.
# /etc/rc.d/rc3.d/S91smb (Startuje serwis SMB w trybie
# wieloużytkownikowym
# /etc/rc.d/rc6.d/K35smb (zatrzymuje serwis SMB podczas resetu)
#

# Biblioteka funkcji
etc/rc.d/init.d/functions

# Konfiguracja sieci
etc/sysconfig/network

# Sprawdź czy jesteśmy w sieci
[ ${NETWORKING} = "no" ] && exit 0

# Zobacz jak zostaliśmy wywołani
case "$1" in
start) echo -n "Starting SMB services: "
daemon smbd -D
daemon nmbd -D
echo touch /var/lock/subsys/smb
;;
stop) echo -n "Shutting down SMB services: "
killproc smbd
killproc nmbd
rm -f /var/lock/subsys/smb echo ""
;;
*) echo "Usage: smb {start|stop}" exit 1
esac


Od tłumacza:
Jeśli używasz dystrybucji Slackware.
Umieść poniższy fragment w skrypcie startowym /etc/rc.d/rc.local:




# czy jesteśmy w sieci
[ ${NETWORKING} = "no" ] && exit 0

# Uruchmon demony Samby
/usr/sbin/smbd -D
/usr/sbin/nmbd -D


Jeśli podczas startu Samby pojawi się błąd mówiący coś o
niemożności dowiązania się do portu 139, to prawdpodobnie jest inny
proces Samby jeszcz działąjący. Sprawdź listę procesów (poleceniem
'ps auxww | grep mbd'), żeby zobaczyć czy to prawda.

5. Ogólna konfiguracja. (/etc/smb.conf)


Konfiguracja Samby na Uniksie jest kontrolowana jednym plikiem:
/etc/smb.conf. W pliku tym umieszczasz zasoby jakie
chcesz udostępnić dla świata i jakie restrykcje chcesz wprowadzić.
Ponieważ ta sekcja opisuje udostępnianie dysków i drukarek
Linux-owych Windowsom, plik smb.conf będzie najprostszym z
możliwych.
Nie martw się o szczegóły. Późniejsze sekcje wprowadzą ogólny
koncept.
Każda sekcja pliku zaczyna się od nazwy jak np.: [global],
[homes], [printers] itp.
Sekcja [global] definiuje kilka ogólnych zmiennych, które będą
się odnosić do wszystkich udostępnianych zasobów.
Sekcja [homes] pozwala użytkownikom na dostęp do ich (i tyklo ich)
katalogów domowych na lokalnej maszynie Linux-owej. Jeśli jakiś
użytkownik Windows będzie chciał skorzystać z udostępnianych
zasobów, to zostanie podłączony do swojego katalogu domowego.
Zauważ, że aby to zrobić użytkownik musi mieć swoje konto na
maszynie Linux-owej.
Poniższy przykładowy plik smb.conf pozwala użytkownikom na dostęp
do swoich katalogów domowych i na zapis do katalogu tymczasowego.
Aby użytkownik Windows zobaczył udostępniane zasoby, Linux musi być
w tej samej sieci lokalnej. Użytkownik Windows po prostu dołącza
dysk sieciowy z Menedżera Plików lub Eksploratora Windows.
W następnych sekcjach będą dodawane kolejne linie do tego pliku,
aby umożliwić dostęp do większej ilości zasobów.



etc/smb.conf
;
; Po wprowadzeniu zmian do tego pliku zrestartuj demony Samby
; kill -9 `pidof smbd`; kill -9 `pidof nmbd`
; /usr/sbin/smbd; /usr/sbin/nmbd
[global] Umieść to w pliku jeśli chcesz konto anonimowe guest account = nobody
log file = /var/log/samba-log.%m lock directory = /var/lock/samba share
modes = yes

[homes] comment = Katalogi Domowe browseable = no read only = no create
mode = 0750

[tmp] comment = Miejsce na pliki tymczasowe path = /tmp read only = no
public = yes


Po stworzeniu nowego pliku smb.conf dobrze jest zweryfikować
czy jest poprawny. Można to zrobić przy pomocy programu
testparm (informacje o nim znajdziesz na stronie podręcznika
systemowego). Jeśli program ten nie zgłosi żadnych błędów, to smbd
poprawnie załaduje ten plik.
Oto pewien trick: Jeśli twój serwer Samba ma więcej niż jeden
interfejs ethernetowy, smbd może dołączyć się do złego. Jeśli tak
się stanie, to możesz zmusić smbd do dowiązania się do dobrego
przez dodanie do sekcji [global] poniższej linii:



interfaces = 192.168.1.1/24


Uwaga: Liczba po znaku '/' odnosi się do maski podsieci.
"24" to wartość jaką należy użyć dla niepodzielonej
klasy C. Więcej informacji okalkulacjach dotyczących podsieci
znajdziesz pod adresem
www.ziplink.net/~ralphb/IPSubnet/index.html.
Dostępne jest graficzne narzędzie konfiguracyjne do Samby:
GtkSamba. Zerknij pod adres
www.open-systems.com/gtksamba.html.

6. Udostępnianie dysku Linuksowego komputerom z Windows.


Jak widać na powyższym przykładzie udostępnianie dysków
Linux-owych użytkownikom Windows jest proste. Dostęp do zasobów
udostępnianych poprzez Sambę można w bardzo dużym stopniu
kontrolować.
Aby udostępnić wszystkim jakieś zasoby, dodaj poniższe linie do
smb.conf:



[public]
comment = Public Stuff path = /home/public public = yes writable = yes
printable = no


Aby umożliwić zapis do tego katalogu tylko dla członków grupy
staff, zmodyfikuj te linie w następujący sposób:



[public]
comment = Public Stuff path = /home/public public = yes writable = yes
printable = no write list = @staff


Kiedyś było to bardzo proste: po prostu startowałeś Sambę i zasoby
można było przeglądać z Windows na PC. Jednak Microsoft ostatnio
trochę utrudnił życie korzystającym z Samby. Systemy Windows 98,
Windows NT (z service pack 3 i nowszym) i ostatnie Windows 95
używają teraz standardowo kodowanych haseł. Samba natomiast
korzysta domyślnie z niekodowanych haseł. Nie można przeglądać
zasobów jeśli albo klient albo serwer używa kodowanych haseł
ponieważ nie można połączyć się anonimowo.
Jeśli taki właśnie konflikt występuje u ciebie, to podczas próby
połączenia się z zasobem powinieneś zobaczyć okienko z komunikatem:
"You are not authorized to access that account from this
machine".
Możesz skonfigurować albo Sambę do używania zakodowanych haseł,
albo Windows do używani niekodowanych haseł.
Konfigurowanie Windows do używania kodowanych haseł Samby:
Windows 95/98
Używając edytora rejestrów (regedit) stwórz takie ustawienie:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP
dodaj nową wartość DWORD: Value name: EnablePlainTextPassword Data:
0x01.
Windows NT
Używając edytora rejestrów (regedit) stwórz takie ustawienie:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rdr\Parameters,
dodaj nową wartość DWORD: Value Name: EnablePlainTextPassword
Data: 0x01.
Kiedy te zmiany zostaną zrobione, zresetuj komputer z Windows i
spróbuj podłączyć się do jakiegoś zasobu z Samby. Powinno to
działać o ile serwere Samby używa niekodowanych haseł
Konfigurowanie Samby do używania haseł kodowanych:
W sekcji [global] w pliku /etc/smb.conf dodaj
następujące linie:



encrypt passwords = yes
smb passwd file = /etc/smbpasswd


Zanim to zrobisz zachęcam mocno do przeczytania plików
ENCRYPTION.txt, Win95.txt i WinNT.txt w dokumentacji
do Samby.
Jeśli twoi klienci i serwer używają kodowanych haseł nie będziesz
mógł przeglądać zasobów serwera zanim nie zostanie zainicjowane
pierwsze połączenie z poprawną autentykacją. Aby to uczynić wpisz
ręcznie nazwę zasobu w Menedżerze Plików lub Eksplorerze w postaci
\\<nazwa serwera>\<nazwa zasobu>. Zaloguj się z
poprawnym loginem i hasłem na tym serwerze.
Jeśli podejrzewasz, że serwis nazwa NetBIOS jest źle skonfigurowany
(może dlatego, że pojawiają się błędy "host not found"
podczas połączenia), to spróbuj użyć tylko adresu IP serwera
\\<IP serwera>\<nazwa zasobu>.
Żeby nazwy plików pojawiały się poprawnie możliwe, że musisz dodać
kilka ustawień do odpowiedniej sekcji zasobu. Poniższe działa
poprawnie dla Windows 95/98/NT, ale możliwe, że trzeba te
ustawienia zmodyfikować w przypadku Windows 3.x:



; Mangle case = yes zdaje się podawać poprawne nazwy
; dla Win 95/98
mangle case = yes

; Czy rozróżniać duże i małe litery
case sensitive = no

; Domyślna wielkość liter przy tworzeniu plików
default case = lower

; Zachowaj ustawienia dot. liter dla wszystkich plików
preserve case = yes

; Zachowaj ustawienia dor. liter dla nazwa dos-owych (8.3)
short preserve case = no


Więcej informacji na temat różnych sposobów udostępniania zasobów
znajdziesz w dokumentacji do Samby. Możliwości konfiguracji Samby
są o wiele większe niż pokazane tutaj. Na początek jednak
wystarczy. Jeśli chcesz zrobić coś bardziej zaawansowanego, to
zajrzyj na wspomnianą wcześniej stronę WWW Samby.

7. Udostępnianie dysku spod Windows maszynom z Linux-em.

Wraz z dystrybucją Samby otrzymujemy klienta dla Unix-ów. Jego
interfejs poleceń jest podobny do ftp. Możesz go używać, aby
przenosić pliki między Windowsowym "serwerem" a klientem
Linux-owym.
Aby zobaczyć jakie zasoby sa udostępnione na danym hoście napisz:


/usr/sbin/smbclient -L host


gdzie host jest nazwą maszyny, której zasoby chcesz zobaczyć.
Polecenie to zwróci listę nazw serwisów - to znaczy nazw
dysków lub drukarek, które może udostępnić. Serwer Samby będzie
cię pytał o hasło, o ile nie ma skonfigurowanego bezpiecznego
dostępu.
Np.



smbclient -L zimmermann


Polecenie to powinno wyświetlić coś na kształt:



Server time is Sat Aug 10 15:58:27 1996 Timezone is UTC+10.0
Password: Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51]

Server=[ZIMMERMAN] User=[] Workgroup=[WORKGROUP] Domain=[]

Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remote Admin public Disk Public C$ Disk
Default share IPC$ IPC Remote IPC OReilly Printer OReilly print$
Disk Printer Drivers


This machine has a browse list:

Server Comment
--------- -------
HOPPER Samba 1.9.15p8 KERNIGAN Samba 1.9.15p8 LOVELACE
Samba 1.9.15p8 RITCHIE Samba 1.9.15p8 ZIMMERMAN


Browse list pokazuje inne serwery SMB udostępniające zasoby w
sieci.
Aby użyć klienta napisz:


/usr/sbin/smbclient serwis <hasło>


gdzie serwis jest nazwą maszyny i zasobu. Na przykład jeśli
próbujesz dostać się do katalogu, który jest udostępniany jako
public na maszynie o nazwie zimmermann, serwisem byłoby:
\\zimmerman\public. Chociaż z powodu powłoki w
Linux-ie będziesz musiał oznaczyć znaki \ specjalnie i
polecenie ostatecznie wygląda tak:


usr/sbin/smbclient \\\\zimmerman\\public hasło


gdzie hasło jest łańcuchem znaków będącym twoim hasłem.
Pojawi się wtedy znak zachęty klienta Samby:



Server time is Sat Aug 10 15:58:44 1996 Timezone is UTC+10.0
Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager
3.51] smb: \>


Napisz 'h', aby uzyskać pomoc:



smb: \> h ls dir lcd cd pwd get mget put mput rename more mask del rm
mkdir md rmdir rd prompt recurse translate lowercase print printmode
queue cancel stat quit q exit newer archive tar blocksize tarmode
setmode help ? ! smb: \>


Jeśli umiesz używać ftp, to nie powinieneś potrzebować czytać
podręcznika systemowego na temat smbclient.
smbclient może być dobry do testowania jednak szybko może się
znudzić w codziennej pracy. Będziesz pewnie chciał używać
pakietu smbfs. Zawarte są tam dwa proste narzędzia:
smbmount i smbumount. Działają dokładnie tak samo jak
linuksowe polecenia mount i umount z tym, że operują na zasobach
SMB.
Pakiet smbfs jest zawarty w większości dystrybucji Linuksa.
Jedna ważna uwaga: Musisz mieć wkompilowaną w jądro obsługę systemu
plików SMB (smbfs), aby móc używać tych narzędzi!

8. Udostępnianie drukarki Linux-owej komputerom z Windows.


Aby udostepnić drukarkę Linux-ową Windowsom musisz się upewnić, że
drukarka działa dobrze pod Linux-em. Jeśli możesz drukować spod
Linux-a to ustawienie serwera SMB dla drukarki jest bardzo proste.
Przeczytaj Priniting-HOWTO na temat ustawienia drukarki pod
Linux-em.
Ponieważ autor używa drukarki połączonej z Windows NT (bardzo dawno
temu - zanim nasza sieć została całkiem przeniesiona na Linuksa),
sekcja ta
nie powinna być brana za definicję, ale bardziej jako sugestia.
Jeśli ktokolwiek ma ochotę się podzielić szczegółami na temat
innych konfiguracji proszę o kontakt, aby ta sekcja mogła zostać
skończona:
dwood@plugged.net.au.
Dodaj konfigurację na temat drukowania do smb.conf:



[global]
printing = bsd printcap name = /etc/printcap load printers = yes
log file = /var/log/samba-log.%m lock directory = /var/lock/samba

[printers] comment = Wszystkie drukarki security = server path = /var/spool/lpd/lp
browseable = no printable = yes public = yes writable = no
create mode = 0700

[ljet] security = server path = /var/spool/lpd/lp printer name = lp
writable = yes public = yes printable = yes
print command = lpr -r -h -P %p %s


Upewnij się, że ścieżka do drukarki (w tym wypadku w sekcji ]ljet[)
jest taka sama jak katalog zadań w etc/printcap.
Linie:



printcap name = /etc/printcap
load printers = yes


decydują czy wszystkie drukarki zdefiniowane w
/etc/printcap powinny być załadowane. Jeśli to zrobisz, to
nie ma sensu konfigurować drukarek indywidualnie. Sekcja
[printers] określa ustawienia dla drukarek, które chcesz
wyraźnie zdefiniować. Jeśli twój system drukowania nie działa w ten
sposób (BSD), to musisz skonfigurować fałszywy plik konfiguracyjny
dla drukarek (albo użyć techniki z poleceniem 'print'; zobacz
dalej). Więcej informacji na temat drukowania znajdziesz w
Printing-HOWTO.
Pożyteczną techniką testowania połączenia sieciowego jest zmiana
polecenia print na:



print command = cp %S /tmp/print.%P.%S


Można potem przeanalizować plik wynikowy.
UWAGA: Są pewne problemy przy udostępnianiu drukarki Unixowej
przez Sambę komputerom z Windows NT. Jeden problem to taki, żeby
NT widziało poprawnie drukarkę. Aby go zlikwidować przeczytaj plik
docs/WinNT.txt, który jest dostarczany wraz z
dystrybucją. Drugi problem to hasła. Przeczytaj ten sam plik, aby
rozwiązać ten problem.
Oleg L. Machulskiy (machulsk@shade.msu.ru) proponuje, że lepszym
poleceniem byłoby:



print command = smb2ps %s | lpr -r -h -P %p


gdzie smb2ps to skrypt zamieniający plik otrzymany z Windows
na bardziej użyteczny PostScript. Musi on odciąć pierwsze 3 linie i
ostatnie dwie ponieważ te linie zawierają pewne kody PJL lub PCL.
Takie podejście jest potrzbne tylko wtedy jeśli Windows u ciebie
drukuje PCL a nie prawdziwy PostScript. Dowiedziałem się, że
Windows 95/98/NT nie posiadają same z siebie sterownika do
PostScriptu, ale sterownik "Digital turbo Printserver
20" jest dobrym zamiennikiem takiego w większości przypadków.
Słyszałem także, że sterownik "Apple LaserWriter II
NTX" działa dobrze.
Jeff Stern (jstern@eclectic.ss.uci.edu) zgłosił coś takiego, co
może niektórym z was pomóc:
--------------------------%<----------------------------------
Mój problem polegał na tym, że mogłem drukować na drukarce z samego
Linuksa, ale nie mogłem drukować na niej z Windows 95. Kiedy
próbowałem polecenia smbclient \\eclectic\belen -P i potem
próbowałem wydrukować plik pojawiały się komunikaty o braku
dostępu (access denied). Tak więc ustawiłem dla katalogu
/var/spool/lpd/lp1 atrybuty 777. Przykro mi, ale musiałem
to zrobić. Mogłem też wszystkich użytkowików zapisać do grupy 'lp'
i ustawić takie prawa dla tej grupy, albo zmienić właściciela
grupowego katalogu na 'users' ... . Ale jak na razie to działa z
prawami root:lp 777.
Inną rzeczą jaką administratorzy muszą wiedzieć, to fakt, że nazwa
konta,z którego użytkownik próbuje drukować z Windows, musi istnieć
także na Linuksie. I tak: jeśli na Windows jest użytkownik 'joe',
ti na Linuksie musi być też użytkownik 'joe'. Hasło logowania
użytkownika 'joe' będzie hasłem dostępu do drukarki na Linuksie.
Użytkownik będzie zapytano o to hasło podczas dodawania drukarki
sieciowej do swojego komputera.
Myślałem, że to nie będzie problemem u mnie, bo ustawiłem swoją
drukarkę jako 'public' (ogólnie dostępną) w /etc/smb.conf.
Ale jednak wciąż jest pytanie o hasło. Windows nie daje niestety
możliwości podania innego loginu dla drukarki zdalnej. Używa po
prostu tego, którym zalogowałeś się do Windows.
--------------------------%<----------------------------------
Dr. Michael Langner (langner@fiz-chemie.de) wskazuje, że problemu z
prawami dostępu dla katalogu /var/spool/lpd/ można uniknąć
przez użycie takich ustawień:



path = /tmp
print command = lpr -r -P%p %s


Czasami pojawi się błąd podczas przetwarzania PostScriptu z
Windows, który powoduje wydrukowanie dodatkowej strony na końcu
każdego zadania. Na początku każdej takiej strony znajduje się
''"%%[ Lastpage ]%%". Zdarza się to tylko w
Windows 95/98 i spowodowane jest błędami w PostScripcie.
Jednym ze sposobów, aby sobie z tym poradzić jest użycie skryptu
usuwającego ten kawałek złego PostScriptu z zadania wydruku. Innym
sposobem jest znalezienie lepszego sterownika do PostScriptu do
Windows. Najlepszym sposobem jest prawdopodobnie użycie LPRng
zamiast PostScriptu do drukowania na serwerze Samby.
Erik Ratcliffe (erik@caldera.com) z Caldery powiedział mi, że
używanie LPRng oznacza, że na maszynach z Windows może byc użyty
każdy sterownik. Na serwerze Samby, używali oni takiego pliku
/etc/printcap:



raw:\
:rw:sh:
:lp=/dev/lp1
:sd=/var/spool/lpd/raw
:fx=flp


LPRng nie wyamaga znaków ':\' na końcu każdej linii. Wciąż
potrzebna jest pozycja dotycząca drukarek w pliku
/etc/smb.conf. Polecenie 'print' musi używać drukarki
zdefiniowanej jako "raw" w /etc/printcap i
dane muszą być wysyłane do tej drukarki binarnie. Spróbuj użyc
poniższej linii:



print command = lpr -b -Praw %s


Możliwe też, że będziesz musiał skonfigurować kolejkowanie na
Windows 95, tak żeby wysyłać wydruki bezpośrednio do drukarki
zamiast je kolejkować.

9. Udostępnianie drukarki spod Windows komputerom z Linux-em.


Aby udostępnić drukarkę spod Windows-ów musisz zrobić następujące
rzeczy:


Musisz mieć poprawne pola w /etc/printcap i muszą one
odpowiadać lokalnej strukturze katalogów (katalog dla drukarki itp.)

Musisz mieć skrypt /usr/bin/smbprint. Skrypt ten
znajduje się w źródłach Samby, ale nie w każdym pakiecie binarnym.
Poniżej znajduje się trochę zmodyfikowana wersja tego skryptu.

Jeśli chcesz zamieniać pliki ASCII na PostScript, musisz mieć
nenscript albo jego ekwiwalent. nenscript jest konwerterem
PostScript-owym i jest z reguły instalowany w /usr/bin.

Możesz ułatwić drukowanie poprzez Sambę pisząc skrypt. Poniżej
podany jest prosty skrypt w Perl-u obsługujący pliki ASCII,
PostScript i stworzony PostScript.

Mógłbys też użyć MagicFilter do powyższych zadań.
Szczegóły na temat konfiguracji tego filtru są podane za skryptem w
perlu. Zaletą tego filtru jest znajomość wielu formatów plików i
umiejętność ich konwersji.

Poniższe pola w /etc/printcap są dla drukarki HP 5MP
dołączonej do komputera z Windows NT.



cm - komentarz; lp - urządzenie, na które ma być wysłany wydruk;
sd - katalog zadań dla drukarki (na lokalnym komputerze); af -
katalog accounting; mx - maksymalny rozmiar pliku (0 - bez
ograniczenia); if - nazwa filtru wejściowego (skryptu).


Więcej informacji znajdziesz w Printing-HOWTO lub w podręczniku
systemowym dla "printcap".



etc/printcap
#
# //zimmerman/oreilly przez smbprint
#
lp:\ cm=HP 5MP Postscript OReilly na zimmerman:\ lp=/dev/lp1:\
:sd=/var/spool/lpd/lp:\ af=/var/spool/lpd/lp/acct:\ mx#0:\
:if=/usr/bin/smbprint:


Upewnij się, że katalogi zadań i zliczania (accounting) istnieją
i są zapisywalne
oraz że if ma poprawną ścieżkę do scryptu smbprint (patrz
poniżej) i że lp wskazuje poprawne urządzenie (plik specjalny w
katalogu /dev)
Następnym krokiem jest skrypt smbprint. Zwykle znajduje się
on w /usr/bin i jest przypisywany Andrew Tridgellowi -
osobie, która stworzyła Sambę o ile wiem. Przychodzi on wraz z
dystrybucją źródeł Samby, ale nie ma go w dystrybucji binariów,
więc go tutaj stworzyłem.
Możesz przejrzeć go dokładniej. Przerobiłem go trochę, ponieważ
przeróbki wydawały mi się użyteczne.



#!/bin/sh
# Skrypt ten jest filtrem wejściowym do drukowania na drukarce
# dołączonej do Unix-a. Używa programu smbclient do drukowania
# pliku. Na przykład twój printcap mógłby wyglądać nastepująco:
#
#
# smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint
#
#
# Stworzyłby on drukarkę o nazwie smb, która drukowałaby poprzez
# ten skrypt. Musiałbyś stworzyć katalog zadań /usr/spool/smb z
# odpowiednimi dla twojego systemu prawami dostępu i właścicielem.
#
# Ustaw następujące rzeczy na serwer i serwis przez, który chcesz
# drukować. W tym przykładzie mam PC-ta z WfWg o nazwie "lapland",
# który ma drukarkę o nazwie printer bez hasła.
#
#
# W dalszej części skrypt został przerobiony przez hamilton@ecnz.co.nz
# (Michael Hamilton, tak aby serwer, serwis i hasło mogły być
# przeczytane z pliku /usr/var/spool/lpd/PRINTNAME/.config
#
# Aby to działało /etc/printcap musi mieć pole af:
#
# cdcolour:\ cm=CD IBM Colorjet on 6th:\ sd=/var/spool/lpd/cdcolour:\
# :af=/var/spool/lpd/cdcolour/acct:\ if=/usr/local/etc/smbprint:\
# :mx=0:\ lp=/dev/null:
#
# Plik /usr/var/spool/lpd/PRINTNAME/.config powinien zawierać:
# server=PC_SERVER service=PR_SHARENAME password="password"
#
# Np. server=PAULS_PC service=CJET_371 password=""

#
# Plik, do którego mają byc zapisywane wiadomości ze śledzenia;
# możesz zmienić na /dev/null jeśli chcesz:
#
logfile=/tmp/smb-print.log logfile=/dev/null


#
# Ostatnim parametrem do filtra jest nazwa pliku accounting.
#
spool_dir=/var/spool/lpd/lp config_file=$spool_dir/.config

# Powinien czytać te zmienne z pliku konfiguracyjnego: serwer
# serwis hasło użytkownik
eval `cat $config_file`

# Trcohę pomocy, zmień >> na > jeśli chcesz zachować trochę
# miejsca na dysku.
#
echo "server $server, service $service" >> $logfile

(UWAGA Możesz dodać linię `echo translate' jesli chcesz
# automatycznego tłumaczenia CR/LF podczas drukowania.
echo translate echo "print -" cat
) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $user
-N -P >>
$logfile


Większość dystrybucji Linux-owych posiada nenscript do zamiany
dokumentów ASCII na PostScript. Następujący skrypt w Perl-u
ułatwia życie stwarzając prosty interfejs dla drukowania w
Linux-ie przez smbprint.



Stosowanie: print [-a|c|p] <nazwa_pliku>
-a drukuje <nazwa_pliku> jako ASCII; c drukuje <nazwa_pliku>
sformatowane jako źródło; -code p drukuje <nazwa_pliku> jako
PostScript.
Jeśli nie ma żadnej opcji, print próbuje odgadnąć typ pliku i
odpowiednio go wydrukować.


Użycie smbprint do drukowania plików ASCII powoduje obcinanie
długich linii. Ten skrypt dzieli długie linie w miejscu spacji
(zamiast w środku słowa) jeśli jest to możliwe.
Formatowanie źródła odbywa sie przy pomocy programu nenscript.
Bierze on plik ASCII i formatuje go w dwie kolumny z dodatkowym
nagłówkiem (data, nazwa pliku, itp.) Zlicza także ilość linii.
Wzorując się na tym przykładzie możesz zrobić inne typy
formatowania.
Dokumenty PostScript-owe są już sformatowane więc przechodzą
bezpośrednio do drukarki.



usr/bin/perl

# Skrypt: print Autorzy: Brad Marshall, David Wood
# Plugged In Communications Date: 960808
#
# Skrypt do drukowania na drukarce oreilly, która jest dołączona do
# komputera zimmerman. Opis działania: Jako argumenty przyjmuje pliki
# różnych typów i wysyła je odpowiednio do skryptu drukujacego Samby
#
# Obecnie obsługiwane typy plików:
#
# ASCII - Upewnij się, że linie dłuższe niż $line_length zostały
# podzielone w miejscu spacji.
# PostScript - Nie robi nic.
# Code - Formatuje na PostScript używając "nenscript", aby wszystko
# było odpowiednio wyświetlone (ułożenie, czcionki, itd.)
#
#
# Ustaw maksymalną ilość znaków w linii dla plików ASCII. line_length
$= 76;

# Ustaw ścieżkę i nazwę skryptu drukującego Samby print_prog =
$"/usr/bin/smbprint";

# Ustaw ścieżkę i nazwę "nenscript-u" (zamiana ASCII-->PostScript)
$nenscript = "/usr/bin/nenscript";

unless ( -f $print_prog ) { die "Can't find $print_prog!";
}
unless ( -f $nenscript ) { die "Can't find $nenscript!";
}

&ParseCmdLine(@ARGV);

# DBG print "filetype is $filetype\n";

if ($filetype eq "ASCII") { ero;wrap($line_length); elsif ($filetype eq
&"code") {
} ero;codeformat; elsif ($filetype eq "ps") {
&createarray; else {
} print "Sorry..no known
&file type.\n"; exit
} 0;
}
# Wyślij tablcę do smbprint open(PRINTER, "|$print_prog") || die "Can't
open $print_prog: $!\n"; foreach
$line (@newlines) {
print PRINTER $line;
}
# Wyślij dodatkowy znak LF jeśli plik ma niekompletną ostatnią linię. print
PRINTER "\n"; close(PRINTER); print "Completed\n"; exit 0;

# --------------------------------------------------- #
# Wszystko poniżej jest procedurą #
# --------------------------------------------------- #

sub ParseCmdLine { Interpretuje wiersz poleceń, szukając jakiego typu jest
# plik

# Gets $arg and $file to be the arguments (if they exists) and the
# filename
if ($#_ < 0) { ero;usage;
}
# DBG foreach $element (@_) { print "*$element* \n";
# }

$arg = shift(@_); if ($arg =~ /\-./) { cmd = $arg; DBG print "\$cmd
found.\n";

$file = shift(@_); else { file = $arg;
}

# Definiowanie typu pliku dopóki ($cmd) { Nie mamy argumentów

if ($file =~ /\.ps$/) { filetype = "ps"; elsif ($file =~
$/\.java$|\.c$|\.h$|\.pl$|\.sh$|\.csh$|\.m4$|\.inc$|\.html$|\.htm$/)
${ filetype = "code"; else { filetype = "ASCII";
}

# Przerób $file odpowiednio do jego typu i zwróć $filetype
} else { Mamy typ pliku w $arg if ($cmd =~ /^-p$/) {
filetype = "ps"; elsif ($cmd =~
$/^-c$/) { filetype
} = "code"; elsif ($cmd =~
$/^-a$/) {
} filetype = "ASCII"
}
}
}

sub usage { print " Stosowanie: print [-a|c|p] <plik>
-a drukuje <plik> jako ASCII c drukuje <plik> sformatowany jako
źródło
-code p drukuje <plik> jako PostScript
Jeśli nie ma żadnej opcji, print próbuje odgadnąć typ pliku i
odpowiednio go wydrukować.\n
";
exit(0);
}

sub wrap { Stwórz tablicę linii w pliku, gdzie każda linia jest krótsza od
# podanej ilości znaków i jest podzielona tylko w miejscach spacji

# Pobierz ilość znaków jaka może być w linii. limit =
$pop(@_);

# DBG print "Entering subroutine wrap\n"; print "The line length
#limit is $limit\n";

# Wczytaj plik, sformatuj i umieść w tablicy. open(FILE,
"<$file") || die "Can't open $file: $!\n"; while(<FILE>) {
$line = $_;

# DBG print "The line is:\n$line\n";

# Podziel linię jeśli jest dłuższa niż podana ilość znaków. while (
length($line) > $limit ) {

# DBG print "Wrapping...";

# Pobierz pierwsze $limit+1 znaków. part =
$substr($line,0,$limit +1);

# DBG print "The partial line is:\n$part\n";

# Sprawdź czy ostatni znak jest spacją.
$last_char = substr($part,-1, 1);
if ( " " eq $last_char ) { Jeśli tak, wydrukuj resztę.

# DBG print "The last character was a space\n";

substr($line,0,$limit + 1) = "";
substr($part,-1,1) = "";
push(@newlines,"$part\n");
} else { Jeśli nie, znajdź ostatnią spację w
# pod-linii i drukuj do niej

# DBG print "The last character was not a
#space\n";

# Usuń znaki dalsze niż $limit
substr($part,-1,1) = ""; Odwróć linię
# aby ułatwić odnajdywanie ostatniej spacji
$revpart = reverse($part);
$index = index($revpart," ");
if ( $index > 0 ) {
substr($line,0,$limit-$index) = "";
push(@newlines,substr($part,0,$limit-$index)
. "\n"); else { Nie było spacji w linii
} więc
# wydrukuj do $limit.
substr($line,0,$limit) = "";
push(@newlines,substr($part,0,$limit)
. "\n");
}
}
}
push(@newlines,$line);
}
close(FILE);
}

sub codeformat { Wywołaj procedurę wrap i przefiltruj przez nenscript
&wrap($line_length);

# Przepuść wynik przez nenscript, aby utworzyć plik PostScript,
# który pasuje do jakiegoś przyzwoitego formatu źródeł do drukowania
# (ułożenie, czcionki Courier, ilość linii). Najpierw wydrukuj to do
# pliku tymczasowego.
$tmpfile = "/tmp/nenscript$$";
open(FILE, "|$nenscript -2G -i$file -N -p$tmpfile -r") || die "Can't
open nenscript: $!\n"; foreach $line (@newlines)
{
print FILE $line;
}
close(FILE);

# Wczytaj plik tymczasowy spowrotem do tablicy, tak aby mógł być
# wysłany do skryptu print Samby.
@newlines = ("");
open(FILE, "<$tmpfile") || die "Can't open $file: $!\n";
while(<FILE>) {
push(@newlines,$_);
}
close(FILE); system("rm $tmpfile");
}

sub createarray { Stwórz tablicę dla PostScript-u open(FILE, "<$file") ||
# die "Can't
open $file: $!\n"; while(<FILE>) {
push(@newlines,$_);
}
close(FILE);
}


Teraz sposób z MagicFilter. Dziękuję za tę informację Alberto
Menegazzi (
flash.egon@iol.it).
Alberto pisze:
--------------------------%<----------------------------------
1) Zainstaluj MagicFilter dla odpowiednich drukarek w
/usr/bin/local/, ale nie umieszczaj w
/etc/printcap tego co sugeruje dokumentacja do tego
filtru.
2) Utwórz plik /etc/printcap na podobieństwo tego poniżej
(to jest konfiguracja dla mojej drukarki LaserJet 4L):



lp|ljet4l:\
:cm=HP LaserJet 4L:\
:lp=/dev/null:\ # or /dev/lp1
:sd=/var/spool/lpd/ljet4l:\
:af=/var/spool/lpd/ljet4l/acct:\
:sh:mx#0:\
:if=/usr/local/bin/main-filter:


Powinieneś wiedzieć, że lp=/dev/... otwierane jest z lokowaniem,
tak więc powinny być używane virtualne urządzenia; jedno dla każdej
odległej drukarki.
Np. stworzone przez 'touch /dev/ljet4l'.
3) Stwórz filtr /usr/local/bin/main-filter jak poniżej:



#! /bin/sh
logfile=/var/log/smb-print.log
spool_dir=/var/spool/lpd/ljet4l
(
echo "print -"
/usr/local/bin/ljet4l-filter
) | /usr/bin/smbclient "\\\\SHIR\\HPLJ4" -N -P >> $logfile


P.S. Oto cytat z mini-HOWTO Print2Win na temat lokowania i po co
tworzyć wirtaulne drukarki.
---Początek cytatu
Wskazówka od Ricka Bresslera:
Dobra rada. Ja używam czegoś bardzo podobnego. Jedna pomocna
wskazówka, to poniżej nie jest dobrym pomysłem:



:lp=/dev/null:\


lpr otwiera plik podany w ustawieniu lp= na wyłączność. Robi
tak, żeby zapobiec zapisywaniu przez wiele procesów do tej samej
drukarki w tym samym czasie.
Ubocznym efektem tego jest, że w twoim przypadku 'eng' i 'colour'
nie mogą drukować w tym samym czasie (zwykle mniej lub bardziej
przezroczyste, ponieważ będą raczej drukowały szybko no i jest też
kolejka. Tak że nie powinieneś niczego zauważyć). Ale każdy inny
proces, który spróbuje zapisać do /dev/null przerwie działanie.
W systemie jednoużytkownikowym nie jest to problem. Ja mam system z
50. drukarkami - i tam byłby to problem.
Rozwiązaniem jest stworzenie fałszywej drukarki dla każdej. Np.
'touch /dev/eng'.
Zmodyfikowałem pola w pliku /etc/printcap powyżej i
wziąłem pod uwagę sugestie Ricka. Wykonałem te dwa polecenia:



#touch /dev/eng
#touch /dev/colour


---Koniec cytatu
--------------------------%<----------------------------------

10. Tworzenie kopii zapasowej komputerów z Windows na Linuksie.


Adam Neat (
adamneat@ipax.com.au) uprzejmie podał następujący skrypt,
służący do robienia kopii zapasowych Windowsów na Linuksie przy
pomocy narzędzia smbclient. Adam twierdzi, że używa go do
robienia kopii zapasowych Windows 3.x i NT na Linuksie na napędzie
DAT SCSI.
Adam nie jest dumny ze stylu kodowania, ale to działa. Jak ja to
lubię mówić: "Jeśli działa i jest głupie, to nie jest
głupie".
W skrypcie tym agnea1 jest nazwą użytkownika na Linuksie,
który robi kopie.



#!/bin/bash

clear
echo Initialising ...
checkdate=`date | awk '{print $1}'`

if [ -f "~agnea1/backup-dir/backup-data" ]; then

echo "ERROR: No config file for today!"
echo "FATAL!"
exit 1
fi

if [ -d "~agnea1/backup-dir/temp" ]; then

echo "ERROR: No tempoary directory found!"
echo
echo "Attempting to create"
cd ~agnea1
cd backup-dir
mkdir temp
echo "Directory Made - temp"
fi

if [ "$1" = "" ]; then

echo "ERROR: enter in a machine name (ie: cdwriter)"
exit 1
fi

if [ "$2" = "" ]; then

echo "ERROR: enter in a SMB (Lan Manager) Resource (ie: work)"
exit 1
fi

if [ "$3" = "" ]; then

echo "ERROR: enter in an IP address for $1 (ie:
130.xxx.xxx.52)" exit 1
fi

#############################################################################
# Main Section
#
#############################################################################

cd ~agnea1/backup-dir/temp
rm -r ~agnea1/backup-dir/temp/*
cd ~agnea1/backup-dir/

case "$checkdate"
in
Mon)
echo "Backuping for Monday"
cat backup-data | /usr/local/samba/bin/smbclient
\\\\$1\\$2 -I$3 -N echo "Complete"

if [ -d "~agnea1/backup-dir/Monday" ]; then
echo "Directory Monday Not found ...
making" mkdir
~agnea1/backup-dir/Monday
fi

echo "Archiving ..."
cd ~agnea1/backup-dir/temp
tar -cf monday.tar * echo "done ..."
rm ~agnea1/backup-dir/Monday/monday.tar
mv monday.tar ~agnea1/backup-dir/Monday
;;


Tue)
echo "Backuping for Tuesday"
cat backup-data | /usr/local/samba/bin/smbclient
\\\\$1\\$2 -I$3 -N echo "Complete"

if [ -d "~agnea1/backup-dir/Tuesday" ]; then
echo "Directory Tuesday Not found ...
making" mkdir
~agnea1/backup-dir/Tuesday
fi
echo "Archiving ..."
cd ~agnea1/backup-dir/temp
tar -cf tuesday.tar *
echo "done ..."
rm ~agnea1/backup-dir/Tuesday/tuesday.tar
mv tuesday.tar ~agnea1/backup-dir/Tuesday
;;

Wed)
echo "Backuping for Wednesday"
cat backup-data | /usr/local/samba/bin/smbclient
\\\\$1\\$2 -I$3 -N echo "Complete"

if [ -d "~agnea1/backup-dir/Wednesday" ]; then
echo "Directory Wednesday Not found
... making" mkdir
~agnea1/backup-dir/Wednesday
fi
echo "Archiving ..."
cd ~agnea1/backup-dir/temp
tar -cf wednesday.tar *
echo "done ..."
rm ~agnea1/backup-dir/Wednesday/wednesday.tar
mv wednesday.tar ~agnea1/backup-dir/Wednesday
;;

Thu)
echo "Backuping for Thrusday"
cat backup-data | /usr/local/samba/bin/smbclient
\\\\$1\\$2 -I$3 -N echo "Complete"

if [ -d "~agnea1/backup-dir/Thursday" ]; then
echo "Directory Thrusday Not found ...
making" mkdir
~agnea1/backup-dir/Thursday
fi
echo "Archiving ..."
cd ~agnea1/backup-dir/temp
tar -cf thursday.tar *
echo "done ..."
rm ~agnea1/backup-dir/Thursday/thursday.tar
mv thursday.tar ~agnea1/backup-dir/Thursday
;;


Fri)
echo "Backuping for Friday"
cat backup-data | /usr/local/samba/bin/smbclient
\\\\$1\\$2 -I$3 -N echo "Complete"

if [ -d "~agnea1/backup-dir/Friday" ]; then
echo "Directory Friday Not found ...
making" mkdir
~agnea1/backup-dir/Friday
fi
echo "Archiving ..."
cd ~agnea1/backup-dir/temp
tar -cf friday.tar *
echo "done ..."
rm ~agnea1/backup-dir/Friday/friday.tar
mv friday.tar ~agnea1/backup-dir/Friday
;;

*)
echo "FATAL ERROR: Unknown variable passed for day"
exit 1;;

esac
###########



11. Prawa autorskie.


Prawa autorskie tego HOWTO należą do Davida Wooda © 1996-1999,
Można je reprodukować w każdej postaci oraz dystrybuować bez
ograniczeń tak długo jak długo nie będzie zmieniana jego zawartość
włącznie z tym stwierdzeniem.

12. Podziękowania.


Brad Marshall (
bmarshall@plugged.net.au) and Jason Parker (
jparker@plugged.net.au)
dostarczyli czasu, cierpliwości, trochę skryptów i badań.
Adam Neat (
adamneat@ipax.com.au) dostarczył skrypt w bashu do robienia
kopii zapasowych Windows na Linuksie.
Matthew Flint (
matthew@philtrum.demon.co.uk) powiedział mi o ustawienia
interfaces w smb.conf.
Oleg L. Machulskiy (
machulsk@shade.msu.ru), Jeff Stern (
jstern@eclectic.ss.uci.edu), Dr. Michael Langner (
langner@fiz-chemie.de
i Erik Ratcliffe (
erik@caldera.com) zasugerowali modyfikacje w rozdziale na
temat udostępniania drukarki na Linuksie maszynom z Windows.
Alberto Menegazzi (
flash.egon@iol.it) dostarczył konfigurację
MagicFilter.
Andrea Girotto (
icarus@inca.dei.unipd.it) dostarczył wielu wartościowych
sugestii na temat całego dokumentu.
Dzięki także wszystki międzynarodowym tłumaczom, którzy umożliwili
czytanie tego HOWTO ludziom nie znającym angielskiego: Takeo Nakano
(
nakano@apm.seikei.ac.jp), Klaus-Dieter Schumacher (
Klaus-Dieter.Schumacher@fernuni-hagen.de), Andrea Girotto
(
icarus@inca.dei.unipd.it) i wielu innym, z którymi nie mam
kontaktu.

12.1 Od tłumacza.


Tłumaczenie to jest chronione prawami autorskimi © Bartosza
Maruszewskiego.
Dozwolone jest rozprowadzanie i dystrybucja na prawach takich
samych jak dokument oryginalny.
Jeśli znalazłeś jakieś rażące błędy ortograficzne, gramatyczne,
składniowe, techniczne to pisz do mnie:

B.Maruszewski@jtz.org.plOficjalną stroną tłumaczeń HOWTO jest
http://www.jtz.org.pl/Aktualne wersje przetłumaczonych dokumentów znajdują się na
tejże stronie. Dostępne są także poprzez anonimowe ftp pod adresem
ftp.jtz.org.pl w katalogu /HOWTO/.
Przetłumaczone przeze mnie dokumenty znajdują się także na
mojej stronie WWW. Są tam też odwołania do Polskiej Strony
Tłumaczeniowej.
Kontakt z naszą grupą, grupą tłumaczy możesz uzyskać poprzez listę
dyskusyjną jtz@ippt.gov.pl. Jeśli chcesz sie na nią zapisać, to
wyślij list o treści subscribe jtz Imię Nazwisko na adres
majordomo@ippt.gov.pl
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • teen-mushing.xlx.pl
  • Wątki
    Powered by wordpress | Theme: simpletex | © Lemur zaprasza