SMB (server message block )服務消息塊協議
linux之間的共享可以用 nfs network file system
linux與windows之間就要用到 samba
samba使用netbios (network basic input and output system)
netbeui (netbios extened user interface)
samba 通過兩個守護進程來控制
nmbd 用來管理工作組,netbios名的解析等 udp 137,138端口
smbd 用來管理samba主機共享的目錄,檔案 tcp 139,445
特點:
1,能夠支持更詳細的訪問控制
2,能夠跨平臺(linux和windows)共享文件
大概的就說到這裏吧具體的可以登錄官網
下面具體談談配置吧:
[root@li ~]# yum list |grep samba
This system is not registered with RHN.
RHN support will be disabled.
samba-common.i386 --公共的工具包,包括samba.conf和檢測其語法的測試工具testparm
samba.i386 --samba服務端
samba-client.i386 --客戶端的工具指令
samba-swat.i386 --圖形化samba配置工具,其於web接口
[root@li ~]# yum install samba* -y
服務器端主配置文件: /etc/samba/smb.conf
netbios名與ip對應文件 /etc/samba/lmhosts
密碼存放文件: /etc/samba/passdb.tdb --用sampasswd -a加入用戶後就存在了
日誌文件: /var/log/samba/
man smb.conf --查找幫助
[root@li ~]# cat /etc/samba/smb.conf |grep -v ^# |grep -v ^$ |grep -v ^";"|grep -v "#"
[global] --定義全局的參數
workgroup = MYGROUP --定義工作組
server string = Samba Server Version %v --定義服務器的描述
security = user --定義工作模式:share,user,domain,ads
passdb backend = tdbsam --使用本地的.tdb文件保存賬號密碼
load printers = yes --加載打印機
cups options = raw --打印機類型
[homes] --保留的的資源名
comment = Home Directories
browseable = no
writable = yes
[printers] --保留的資源名
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
security =
share 不用密碼,包括匿名用戶
user 使用samba自己的密碼資料庫
server,domain,ads 使用外部主機的密碼
共享目錄有關的參數
browseable 是否可見
public 是否讓所有可以登入的使用者看到
guest ok 和public一樣,使用其中之一就可以
writable 是否可寫
read only 是否只讀 --這個參數與writable同時存在會有衝突,以後面出現的設定值爲主
create mode umask類似
valid users 指定能夠進入的使用者
/etc/init.d/smb start
[root@li ~]# netstat -ntlup | grep bd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 3000/smbd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 3000/smbd
udp 0 0 10.1.1.45:137 0.0.0.0:* 3003/nmbd
udp 0 0 10.1.1.46:137 0.0.0.0:* 3003/nmbd
udp 0 0 192.168.195.1:137 0.0.0.0:* 3003/nmbd
udp 0 0 192.168.205.1:137 0.0.0.0:* 3003/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 3003/nmbd
udp 0 0 10.1.1.45:138 0.0.0.0:* 3003/nmbd
udp 0 0 10.1.1.46:138 0.0.0.0:* 3003/nmbd
udp 0 0 192.168.195.1:138 0.0.0.0:* 3003/nmbd
udp 0 0 192.168.205.1:138 0.0.0.0:* 3003/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 3003/nmbd
實驗一:
使用linux的客戶端工具做測試:
smbclient - ftp-like client to access SMB/CIFS resources
on servers
[root@li ~]# smbclient -L //10.1.1.45
Password: --直接回車,表示以匿名用戶登錄,但沒有看到共享資源,只有服務器的基本信息
[root@li ~]# smbclient -L //10.1.1.45 -U a --使用用戶名登錄,登錄失敗
Password:
session setup failed: NT_STATUS_LOGON_FAILURE
原因:
1,默認security = user 模式,這種模式指定訪問用戶需要密碼,匿名用戶除外
2, samba賬號有兩個要求,一,要求是系統用戶 二,要把系統用戶通過samba的命令把它加入到samba服務裏去
smbpasswd - change a user’s SMB password
[root@li ~]# smbpasswd -a a --把a用戶加入到samba用戶裏
New SMB password:
Retype new SMB password:
Added user a.
[root@li ~]# smbclient -L //10.1.1.45 -U a --再使用a用戶登錄
Password:
Domain=[LI] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server Version 3.0.33-3.14.el5)
a Disk Home Directories --發現多了一個共享資源,共享資源名爲用戶名一樣
[root@li ~]# smbclient //10.1.1.45/a -U a
Password:
Domain=[LI] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
smb: \> pwd --查看當前登錄的目錄
Current directory is \\10.1.1.45\a\
smb: \> ? --幫助
smb: \> help get --查看get命令的幫助
smb: \> ls --列表
smb: \> put install.log --上傳
putting file install.log as \install.log (966.9 kb/s) (average 966.9 kb/s)
smb: \> get vvv
getting file \vvv of size 0 as vvv (0.0 kb/s) (average 0.0 kb/s)
smb: \> rm vvv
上面的實驗知道,就是配置段內的homes這個保留資源
[homes] --定義共享資源的名字, 自動變成對應的用戶名
comment = Home Directories --資源描述
browseable = no --指定在匿名用戶使用-L時是否可見
writable = yes --表示可寫,能夠上傳刪除等操作