对与linux与win的共享来说,samba的简单易用与打印共享是ftp无法取代的,这篇文章简单介绍samba的基础和一些

需要注意的问题,对与linux与linux共享,使用samba并不是明智的选择,还有比smb更好的NFS(Network File System)只是NFS的安全问题比较突出 

初次接触samba,可能会因为apt-get install samba默认安装的配置文件(/etc/samba/smb.conf)苦恼, 
因为里边太乱了,其实大可不必去理会它,与其修改它不如我们自己重新建立 

sudo mv /etc/samba/smb.conf /etc/samba/smb2.conf 
sudo touch /etc/samba/smb.conf


上边两句意思是把原来的配置文件改名,然后从新建立smb.conf 
新的开始,要比收拾一个烂摊子更加容易,下来我们简单建立一个samba的配置框架 

sudo vim /etc/samba/smb.conf 

 #smb.conf 
 [global] 

 [homes] 

 [printers] 

 [sharename]



这就是smb的框架,对的,你没看错,它就是smb.conf的骨架,下边我们只要丰富骨架,配上血肉就是个漂亮的姑娘了,这里需要讲 

解的是smb.conf文件是由3个标准节与若干个用户自定义共享节组成 
[global]节下定义全局的设置 
[homes]节下定义用户的目录共享(比较特殊,后边会讲解) 
[printers]节下定义有关打印参数 
[sharename]可以有多个这种不同名字的节,意思是具体的定义共享那个目录 

下边我们丰富下[global]节 
在[global]节下有这些重要的参数 
---------------------------------------------------------------------------------------------------------------- 

[global] 
 workgroup = smb #定义工作组的名称,可以随便写,在win下会显示出自己写的工作组的名称 
 server string = smb server #对服务器的描述,自己随便写,会在win下显示 
 netbios name =mysmb #smb的netbios名,可以自己写,但最好写本机器的名字 
 client code page = 936 #客户端的字符编码 
 socket address=0.0.0.0 #smb监听的ip,双网卡最好写上,不然会把端口开在两个网卡上 
 security=share/user/server/domain #4中安全级别,我们只关心share/user两个级别 
 # 
 share #用户不需要帐号和密码就可以登陆samba服务器 
 user #由samba服务器提供检查帐号和口令 
 # 
 smb passwd file=/etc/samba/smbpasswd #这个非常重要 
 #


当security=user的时候,意味着smb必须自己提供帐号和密码的检查,这时候就必须配置smb passwd file=/etc/samba/smbpasswd 

文件 
默认是不建立smbpasswd文件的,需要自己建立,只要当使用sudo smbpasswd -a xxx命令时候,才会在smbpasswd文件中出现自己定 

义的用户密码,这在后边会详细讲解 

# 
 log file=/var/log.samba/%m.log #日志文件,%m代表设置的netblos名 
 max log size=100 #日志文件最大尺寸(KB) 
 deadtime=10 #客户的超时时间,10分钟无操作就断开 
 keepalive=60 #60秒发送一次包,确认客户端工作是否正常 
 max open files=1000 #同一客户最多能打开的文件数目 
 socket options=TCP_NODELAY #这里有三个选择,我们只选择TCP这个


------------------------------------------------------------------------------------------------------------------- 
上边就是[global]节下重要的一些参数,可以按自己需要选择,完成这些,基本像个女人了,不过也太恐龙了吧,要脸蛋没脸蛋,要 

胸没胸,要屁股没屁股,基本算三无产品,残念。。。。。 

改造恐龙计划正式开始。。。 

[homes]节 
 -------------------------------------------------------- 
 [homes] 
 comment =home directories #描述文字 
 browseable=no #不可以被浏览,(就是不能看到) 
 writable=yes #可以写 
 valid users=%S #可以使用的用户,%S代表当前服务名 
 create mode=0664 #创建文件时候的权限,用8进制的4位数表示权限


---------------------------------------------------------- 
上边就是标准的[homes]节定义,这节比较特殊点,大家了解下,[homes]节存在的意义就是 
当客户机发出服务请求时,在smb.conf文件的其它部分查找特定内容的服务。如果没有发现这些服务,并且提供了homes段时,那么就搜索密 码文件/etc/samba/smbpasswd得到用户的Home目录。通过Homes段,Samba可以得到用户的Home目录并使之共享 

[printers]有关打印的节,这节比较复杂,主要是牵扯的有点多,相信新手不太关心这个,留后边说 

[sharename]节,这节是我自己起的名字,前边三节都是标准节,名字是固定的,不可重复的 
这节是具体定义共享那些目录,与有关目录的控制权限 
如过想共享/tmp/samba目录,就把[sharename]换成[samba],可以自己起名字,在win下显示的文件夹就是[samba]节的名字 
如果还想同时共享/home/ftp目录,就在[samba]节后边重新写一个节[ftp] 
------------------------------------------------------------- 

[samba] 
 comment=samba #描述 
 path=/tmp/samba #共享路径 
 writable=yes #是否可写 
 browseable=yes #是否可以看到 
 available=yes #是否可用 
 read only=yes #是否只可读 
 public=yes #是否允许guest用户访问 
 guest account=xxx #guest用户使用的帐号 
 guest ok =yes #允许使用guest 
 guest only=yes #是否只允许guest 
 read list =xxx,@xxx #可以读的用户或组列表 
 write list=xxx,@xxx #可以写的用户或组列表 
 valid users=xxx,@xxx #可以使用服务的用户或组列表 
 invalid users=xxx,@xxx #不可以使用服务的用户或组列表


---------------------------------------------------------- 
上边有些参数是冲突的,这里只是罗列出来,提供参考的 

到这里除了打印以外,基本上骨架和血肉的介绍已经结束了,下边说下,配置中经常会碰到的问题 

服务端问题: 
------------------------ 
一: 配置不需要帐号密码的smb共享 
把全局参数中有关安全等级的参数security=share就可以实现不需要帐户密码就可以使用 
当然,也需要在具体的共享文件中不要加valid users参数,不然在访问这个目录时候就需要帐号密码 

二:配置为需要帐号密码的smb共享 
修改sercurity=user后还需要smb passwd file=/etc/samba/smbpasswd参数,然后在建立smbpasswd文件 
先添加一个主目录为/home/ftp的不可登陆用户tom可以使用命令 
sudo useradd -s /sbin/nologin -d /home/ftp/ tom 
然后设定密码, sudo passwd tom 
再设定smb专用密码, sudo smbpasswd -a tom 
做完上边的步骤,就会在/etc/samba/smbpasswd中看到添加的用户,下边,就可以使用tom用户登陆了 
注意,必须使用 sudo smbpasswd -a tom 后用户才会被添加到smbpasswd中,不然不可以使用 

三:共享目录可写,与不能被删除 
当在共享节下设置writable=yes 后,还必须让共享的目录有被写入的权限,才能写入和删除, 
大多情况只能写入而不可以被删除,就需要自己设置目录的特殊权限,sticky-bit权限,具体在论坛有个精华帖介绍 


客户端问题: 
-------------------------- 
一:不能使用网上邻居 
建议把防火墙关掉试下,然后检查tcp-ip协议中,ip和服务器的ip是否在一个网段内,ip协议中高级里是否开启把netbios协议绑定在tcp-ip协议上 

二:网上邻居记录用户密码问题 
在开始-运行中输入 net use /d * 按提示输入yes 
就可以清除记录


http://www.love27.com/archives-29.html