Samba 和 Shell Script 的應用

參考資料

在 Linux 下存取分享 : smbclient 基本應用

列出 192.168.1.3 的分享:

0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
root # smbclient -L //192.168.1.3 -N

Domain=[PC01] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

Sharename       Type      Comment
---------       ----      -------
aaaaaaaaaaa     Disk
bbie_10         Disk
uncd            Disk
av              Disk
hpdeskje        Printer   hp deskjet 5600 series
Download_S      Disk
upload          Disk
D_S01           Disk
D_S02           Disk
D_S03           Disk
root #

進入 192.168.1.3 裡的 bbie_10 分享裡,共使用者是 steven,且密碼是 a12345:

0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
root # smbclient //192.168.1.3/bbie_10 -U steven%a12345
Domain=[PC01] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
smb: > ls
.                                  DA        0  Mon Apr 18 21:20:44 2005
..                                 DA        0  Mon Apr 18 21:20:44 2005
bbie.exe                            A    20992  Tue Nov 13 14:11:22 2001
bbie.lic                            A     6251  Mon Aug 25 14:35:50 2003
bt                                 DA        0  Sun Feb 27 20:24:32 2005
image1.bin                          A     2048  Mon Apr 18 21:20:44 2005

            40036 blocks of size 262144. 9962 blocks available
smb: >

列出目錄,並取得 bbie.exe 檔案:

0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
smb: > ls
  .            DA        0  Mon Apr 18 21:20:44 2005
  ..           DA        0  Mon Apr 18 21:20:44 2005
  bbie.exe      A    20992  Tue Nov 13 14:11:22 2001
  bbie.lic      A     6251  Mon Aug 25 14:35:50 2003
  bt           DA        0  Sun Feb 27 20:24:32 2005
  image1.bin    A     2048  Mon Apr 18 21:20:44 2005

40036 blocks of size 262144. 10133 blocks available
smb: > get bbie.exe
getting file bbie.exe of size 20992 as bbie.exe (70.9 kb/s) (average 70.9 kb/s)
smb: >

查看有那些指令可以使用:

0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
smb: > help
?              altname   archive   blocksize  cancel
case_sensitive cd        chmod     chown      del
dir            du        exit      get        hardlink
help           history   lcd       link       lowercase
ls             mask      md        mget       mkdir
more           mput      newer     open       print
printmode      prompt    put       pwd        q
queue          quit      rd        recurse    reget
rename         reput     rm        rmdir      setmode
stat           symlink   tar       tarmode    translate
vuid           logon     !
smb: >

在 Linux 下存取分享 : smbclient 進階應用

若你常用 smbclient 這個指令,那麼你一定會常常下 -U user%password 這個參數以登入到提供分享的主機做存取,但是你是否想過這樣的話萬一遇到有心人,只要在你身旁一看,那你的密碼就一覽無遺(總該不可能有人會去背一長串加密過後的密碼吧?)。現在只要把你的帳號碼密放在一個檔案裡,在使用 smbclient 時同使用 -A 選項,就可以不用明明白白的把密碼打在營幕上了!現在我們來看看應該如何應用吧。

建立帳號密碼檔:

設立帳號為 steven;密碼為 a12345(當然你不可能在指令上直接打帳號密碼,我是為了方便才這樣)

0001
root # echo -e "username = stevennpassword = a12345" > /misc/smbpw/pws;

開始使用這個帳號密碼檔,並進入 192.168.1.3 的 bbie_10 目錄裡:

0001
0002
0003
0004
root # cat /misc/smbpw/pws
username = steven
password = a12345
root #

直接在 bash 下 smbclient 指令:

0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
root # smbclient //192.168.1.3/bbie_10 -A /misc/smbpw/pws
Domain=[PC01] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
smb: > ls
  .                                  DA        0  Mon Apr 18 21:20:44 2005
  ..                                 DA        0  Mon Apr 18 21:20:44 2005
  bbie.exe                            A    20992  Tue Nov 13 14:11:22 2001
  bbie.lic                            A     6251  Mon Aug 25 14:35:50 2003
  bt                                 DA        0  Sun Feb 27 20:24:32 2005
  image1.bin                          A     2048  Mon Apr 18 21:20:44 2005

                40036 blocks of size 262144. 11111 blocks available
smb: > q@eb
root #

直接上傳一個檔案到 192.168.1.3/upload:

0001
0002
0003
0004
0005
root # smbclient //192.168.1.3/upload -c "mput firefox-1.5.0.2.tar.gz" -A /misc/smbpw/pws
Domain=[PC01] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
Put file firefox-1.5.0.2.tar.gz? y
putting file firefox-1.5.0.2.tar.gz as firefox-1.5.0.2.tar.gz (432.6 kb/s) (average 432.6 kb/s)
root #

在 Linux 下存取分享 : smbmount 的使用

Unix/Linux 檔案系統裡有一個很大的功能就是掛載磁碟機,不論是 floppy、NFS Filesystem、CD/DVD-ROM ... 等格式都可以,那麼如何掛載資源分享的目錄呢,其實很簡單,只要使用 smbmount 就可以了。

把 192.168.1.3 的 upload 掛載到 /smb-dir 上

0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
root # smbmount //192.168.1.3/upload /smb-dir/ -o "username=steven%a12345"; [ $? == 0 ] && mount
/dev/hda2 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/hda1 on /boot type ext3 (rw)
/dev/hda3 on /burn type ext3 (rw)
/dev/hda5 on /data type ext3 (rw)
none on /dev/shm type tmpfs (rw)
/dev/hda7 on /home type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
//192.168.1.3/upload on /smb-dir type smbfs (0)
root #

直接使用 /misc/smbpw/pws 的帳號密碼而不在營幕輸入

0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
root # smbmount //192.168.1.3/upload /smb-dir/ -o "credentials=/misc/smbpw/pws"
root # [ $? == 0 ] && mount && ls /smb-dir/
/dev/hda2 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/hda1 on /boot type ext3 (rw)
/dev/hda3 on /burn type ext3 (rw)
/dev/hda5 on /data type ext3 (rw)
none on /dev/shm type tmpfs (rw)
/dev/hda7 on /home type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
//192.168.1.3/upload on /smb-dir type smbfs (0)
#這個就是 /smb-dir 掛載後的結果
03.mpg  firefox-1.5.0.2.tar.gz  Thumbs.db 
[root@dns /]#

Last modified: 07/01/2008
04/08/2006


首頁