Samba(SMB是其縮寫) 是一個網絡服務器,用於Linux和Windows共享文件之用;Samba 即可以用於Windows和Linux之間的共享文件,也一樣用於Linux和Linux之間的共享文件;不過對於Linux和Linux之間共享文件有更好的網絡文件系統NFS,NFS也是需要架設服務器的;大家知道在Windows 網絡中的每臺機器即可以是文件共享的服務器,也可以同是客戶機;Samba 也一樣能行,比如一臺Linux的機器,如果架了Samba Server 後,它能充當共享服務器,同時也能做爲客戶機來訪問其它網絡中的Windows共享文件系統,或其它Linux的Sabmba 服務器;我們在Windows網絡中,看到共享文件功能知道,我們直接就可以把共享文件夾當做本地硬盤來使用。在Linux的中,就是通過Samba的向網絡中的機器提供共享文件系統,也可以把網絡中其它機器的共享掛載在本地機上使用;這在一定意義上說和FTP是不一樣的。
Samba 用的netbios協議,如果您用Samba 不成功,
Linux與Windows 、Linux 和 Linux
1、安裝
Samba可以使用liveCD或者yum install安裝。
2、查看服務是否已經啓動
[mabin@localhost /]$ service smb start
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
smb 是Samba 的主要啓動服務,讓其它機器能知道此機器共享了什麼;而nmb是做解析用的,就是把這臺Linux機器所共享的工作組及在此工作組下NetBios的解析出來。
從下面可以看出,smbd是佔用的139和445端口。
[mabin@localhost /]$ netstat -tlnp | grep smb
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 13139/smbd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 13139/smbd
3、備份smb.conf文件
Samba服務器的配置文件都位於/etc/samba目錄中,服務器的主配置文件是smb.conf;也有用戶配置文件 smbpasswd、smbusers和lmhosts等;還有一個文件是secrets.tdb,這個文件是Samba 服務器啓動手自動生成的
[mabin@localhost /]$mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
[mabin@localhost /]$ ls /etc/samba
lmhosts passdb.tdb secrets.tdb smb.conf.bak smbpasswd smbusers
4、設置samba服務器能實現匿名讀寫
[STEP 1]配置smb.conf文件
[mabin@localhost /]$touch smb.conf
[mabin@localhost /]$vim smb.conf
/*全局配置*/
[global]
workgroup = mabin //類似於在Windows中顯示的工作組名稱
netbios name = mabin-samba //被netbios解析出來的計算機名
server string = samba testserver //服務器說明
security = share //security是登錄和驗證方式,設置爲share可以匿名訪問;而如果是user這種驗證方式的話,就需要用戶名和密碼
[mabin] //在Windows中顯示出來的共享目錄名
path = /var/samba //共享目錄的路徑
writeable = yes //是否可寫
browseable = yes //是否可瀏覽
guest ok = yes //設置匿名用戶以guest身份登錄
[STEP 2]建立目錄並授予權限
[mabin@localhost /]$mkdir /var/samba
[mabin@localhost /]$id nobody //查看nobody的用戶信息,看是否屬於nobody用戶組
uid=99(nobody) gid=99(nobody) groups=99(nobody)
[mabin@localhost /]$chown -R nobody:nobody /var/samba
[STEP 3]重啓smb服務
[mabin@localhost /]$ service smb restart
Shutting down SMB services: [ OK ]
Shutting down NMB services: [ OK ]
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
5、使用smbclient命令訪問samba服務器的共享
[mabin@localhost /]$ smbclient -L //192.168.1.243 //網上很多資料給出這條命令,但是不能真正的進入命令模式
Password:
Domain=[MABIN] OS=[Unix] Server=[Samba 3.0.33-3.15.el5_4]
Sharename Type Comment
--------- ---- -------
MaBin Disk
IPC$ IPC IPC Service (This is MaBin's Samba server.)
Domain=[MABIN] OS=[Unix] Server=[Samba 3.0.33-3.15.el5_4]
Server Comment
--------- -------
MABIN-SAMBA This is MaBin's Samba server.
Workgroup Master
--------- -------
MABIN
可以看出,192.168.1.243這臺服務器有共享目錄MaBin
[mabin@localhost /]$ smbclient //192.168.1.243/MaBin //進入共享目錄,並在命令模式下對其進行操作
Password:
Domain=[MABIN] OS=[Unix] Server=[Samba 3.0.33-3.15.el5_4]
Server not using user level security and no password supplied.
smb: \>
6、smbclient命令的用法
smbclient –L IP或者NETBIOS名稱 //作用是顯示某臺提供samba服務的服務器上的共享資源
smbclient //IP或者NETBIOS名稱/共享資源名 [-U 用戶名] //使用網絡資源
7、smbclient命令
命令 說明
![shell command] 執行所用的SHELL命令,或讓用戶進入 SHELL提示符
cd [目錄] 切換到服務器端的指定目錄,如未指定,則 smbclient 返回當前本地目錄
lcd [目錄] 切換到客戶端指定的目錄;
dir 或ls 列出當前目錄下的文件;
exit 或quit 退出smbclient
get file1 file2 從服務器上下載file1,並以文件名file2存在本地機上;如果不想改名,可以把file2省略
mget file1 file2 file3 filen 從服務器上下載多個文件;
md或mkdir 目錄 在服務器上創建目錄
rd或rmdir 目錄 刪除服務器上的目錄
put file1 [file2] 向服務器上傳一個文件file1,傳到服務器上改名爲file2;
mput file1 file2 filen 向服務器上傳多個文件
參考資料:
http://www.linuxsir.org/main/?q=node/158$0
http://blog.chinaunix.net/u/16292/showart_358661.html