对与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
就可以清除记录