Smbclient - Samba Windowsi teenuste klientprogramm
Sisukord
Programm Smbclient
Programm Smbclient võimaldab suhelda Windowsi masina või Samba serveri teenustega. Interaktiivses režiimis kasutamisel sarnaneb ta ftpga ning saab tõepoolest faile kopeerida. Lisaks on võimalik näiteks trükkida Windowsi printerile ja saata teateid. Programmi Smbclient sobib hästi kasutada vastkonfigureeritud Samba serveri testimiseks.
Interaktiivselt käivitamiseks anname näiteks korralduse, kus Windowsi kasutaja priit pääseb juurde Windowsis väljajagatud failiteenusele //kalake/priit
bash~$ smbclient //kalake/priit "priiduwindowsiparool" -U priit added interface ip=192.168.1.1 bcast=192.168.1.255 nmask=255.255.255.0 Password: Domain=[ZOO] OS=[Windows NT 4.0] Server=[NT LAN Manager 4.0] smb: \>
Sellest Smbclient'i viibast saab anda Smbclienti käske, mh exit, help, get, put, mget, mput, prompt mkdir cd, rm, prompt, ls, mille tähendus on sarnane vastavaile ftp käskudele.
Kui Smbclientiga külastatakse printimisteenust, siis saab UNIXi faile türkkida Windowsi printerile näiteks selliselt, eeldades, et tegu on postskript printeriga
smb: \> print unixi.fail.ps
Praktiliselt kasutatakse Smbclient'i skriptides, kuidas?, seda järgnevalt uurimegi.
Smbclient sobib hästi Samba serveri häälestamisel testimiseks. Näiteks soovides näha kõiki Samba serveri pakutavaid teenuseid
bash# smbclient -L localhost added interface ip=192.168.1.1 bcast=192.168.1.255 nmask=255.255.255.0 Password: Domain=[ZOO] OS=[Unix] Server=[Samba 2.0.7] Sharename Type Comment --------- ---- ------- homes Disk kasutaja kodukataloog avalik Disk Koigile kirjutamiseks ja lugemiseks hpps Printer Mustvalge HP 6MP PostScript printer IPC$ IPC IPC Service (Samba server) Server Comment --------- ------- samba Samba server 2.0.7 Workgroup Master --------- ------- ZOO samba
Windowsi failiteenuse kasutamine
Kui Windowsi masinas jagada ketas võrgus välja, siis saavad teised võrgu arvutid seda kasutada, kuid sõltuvalt õigustest, kas siis kirjutamiseks või lugemiseks.
Eeldades, et NTs on kasutaja priit ning talle on ligipääsetav failiteenus
//kalake/priit
mis vastab näiteks NT kataloogile C:\users\priit, saab selle UNIXi failisüsteemi külge ühendada selliselt
bash# mount -t smbfs -o username=priit,password=priiduwindowsiparool,uid=priit,gid=priit //kalake/priit /mnt/kalake/priit
eeldusel, et
- Linuxi kernelisse on kompileeritud Filesystems -> Network File Systems -> SMB filesystem support (to mount WFW shares etc.)
- Samba server konfigureerida suvandiga --enable-smbmount
Windowsi printeri kasutamine
Kui Windowsi printeriteenus //kalake/hpps on tööle seatud ja võrku välja jagatud, siis saab kirjeldada printerikirjeldusfailis tavalise UNIXi printeri, mis prindib Windowsi printerile.
Lisage näiteks selline kirje printerikirjeldusfaili /etc/printcap
nt:\ :lp=/dev/null:sh:\ :sd=/var/spool/lpd/kalake:\ :if=/var/spool/lpd/kalake/kalake:
kus skript /var/spool/lpd/kalake/kalake korraldab Smbclient'i suhtlemist NTga
#!/bin/sh cat | /usr/local/samba/bin/smbclient "//kalake/hpps" "" -U guest -c 'print -' >> /tmp/hpps.log
kus
- Windowsi printerile hpps saab kasutaja guest ilma paroolita printida
- logi suunatakse faili /tmp/hp.log
Teate saatmine
Teate saatmiseks Windowsi masinale tuleb anda UNIXi viibast näiteks korraldus
bash~$ cat ~/teade | smbclient -M kalake
kus failis ~/teade on saadetav tekst.
Windowsi failiteenuse varundamine
Programm Smbclient võimaldab Windowsi failiteenust täies mahus kopeerida ning samal ajal arhiveerida
bash~$ smbclient //kalake/priit "tere" -U priit -Tc /home/priit/kalake/kalake.tar
arhiveerimise tulemuse võib saata ka väljundisse ja kasutada seda edasi näiteks pakkimiseks
bash~$ smbclient //kalake/priit "tere" -U priit -Tqc - | gzip > /home/priit/kalake/kalake.tar.gz
ning vajadusel saab varundatu lahti harutada
bash~$ smbclient //kalake/priit "tere" -U priit -Tx /home/priit/kalake/kalake.tar
kasutatud Smbclinet'i võtmed:
- q - quiet
- c - compress
- x - extract
- - - kasuta väljundit
Samba ja utf8
Probleem, samba näitab vaid 134 faili kuigi neid kaustas palju. Taipasin üks hetk kontrollida smbclienti väljundis rida 135 ja nägin seal küsimärke. Kui oma locale paika panin, siis olid read:
134: Mingi video.mkv 135: Полосатый.mkv 136: Mingi teine video.mkv
See tähendab, et mingis suvalises Samba järjestuses oli mingi kirillitsa fail alati ühe koha peal, kuid see ei olnud ei tähestiku ega ajalises järjestuses, mistõttu ei olnud ka ilmne, et nimekiri kuskilt lihtsalt pooleli jäi.
Lahenduseks mount_smbfs tuleb korralikus UTF-8-s haakida:
mount_smbfs -E UTF-8:UTF-8 ...
Nüüd näitab kõiki 1400+ faili.