Samba 和 Shell Script 的应用

参考资料

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

列出 192.168.1.3 的分享:

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:

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 档案:

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: \>

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

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(当然你不可能在指令上直接打帐号密码,我是为了方便才这样)

root # echo -e "username = steven\npassword = a12345" > /misc/smbpw/pws;	

来看一下这个 pws 的内容:

root # cat /misc/smbpw/pws
username = steven
password = a12345
root #

开始使用这个帐号密码档,并进入 192.168.1.3 的 bbie_10 目录里:

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
root #

直接在 bash 下 smbclient 指令:

root # smbclient //192.168.1.3/upload -c "ls" -A /misc/smbpw/pws
Domain=[PC01] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]
  .                                   D        0  Sun Nov 13 11:45:42 2005
  ..                                  D        0  Sun Nov 13 11:45:42 2005
  Thumbs.db                         AHS    37888  Sun Apr  9 23:00:32 2006
  03.mpg                              A 626666924  Sun Dec 22 04:01:00 2002

                59965 blocks of size 262144. 28338 blocks available
root #

直接上传一个档案到 192.168.1.3/upload:

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 上

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 的帐号密码而不在营幕输入

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 /]#

04/08/2006


首页