Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。Linux中搭建环境有几个需要使用的软件包:
(1)samba-client:这个套件则提供了当 Linux 做为SAMBA Client 端时,所需要的工具指令
(2)samba-common:这个套件则主要提供了 SAMBA 的主要设定档(smb.conf) 、 smb.conf 语法检验的测试程序 ( testparm )等等
(3)samba:这个套件主要包含了 SAMBA 的主要 daemon档案 ( smbd 及 nmbd )、 SAMBA 的文件档 ( document )、以及其它与 SAMBA 相关的logrotate 设定文件及开机预设选项档案等
2.网络权限:指网络服务器中对文件的控制的访问的权限。
Samba共享文件的权限根据最严格的权限来决定,如果本地权限与网络权限相同时,使用相同的权限。反之,取两者之间最严格的权限。
通过编辑/etc/samba/smb.conf文件中的Standalone Server Options字段中来控制
(3)samba 访问需要身份验证,验证使用 本地samba账号库
(4)server 访问需要身份验证,验证方式使用网络服务器中的 samba账号库
四、windows 客户端访问smb server的方法: 2.在命令提示符下使用unc路径来访问 (访问格式:\\对方ip地址或者名字\共享名字)
4.使用net use 、net share命令来访问
五、在linux客户端中smbclient的使用方法 smbclient -L //192.168.100.123 -U zhangsan
smbclient //192.168.100.123/smbzs -U zhangsan
案例要求:在samba服务器中根据以下要求将相应文件共享
smbzs /zhangsan zhangsan (rw)
[root@zhangc Server]# yum install -y samba-3.0.33-3.14.el5.i386.rpm samba-client-3.0.33-3.14.el5.i386.rpm samba-common-3.0.33-3.14.el5.i386.rpm --nogpgcheck
编辑/etc/samba/smb.conf文件如下图所示:
1.workgroup为linux服务器所在的工作组 2. bind interface only = yes 表示对接口进行绑定 3. interfaces = x.x.x.x 表示允许被访问的samba服务器的ip地址 4. hostallow表示允许访问samba服务器的ip地址段 268 browseable = yes 给予读权限 269 guest ok = yes 允许匿名访问 一.samba的安装:
sudo apt-get insall samba // (sudo get temp root auth)
sudo apt-get install smbfs
二. 创建共享目录:
mkdir /home/john/share
sudochmod 777 /home/john/share
说明:john为你的ubuntu的用户名
share你可以随便起个名字做为共享文件夹
三.创建Samba配置文件:
1. 保存现有的配置文件
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
2.修改现配置文件
sudo gedit /etc/samba/smb.conf
在smb.conf最后添加
[share]
path = /home/john/share
available = yes
browseable = yes
public = yes
writable = yes
valid users = myname
create mask = 0700
directory mask =0700
force user =nobody
force group = nogroup
说明:valid users = myname 这个myname是自己起的,后面在添加用户名时就是添加的这个
另外这个[share]名字也是可以随便起的,这个是你在windows下访问时显示的名字,
在windows下 \\162.168.160.11\share就可以访问linux下/home/god/code目录下的内容了
其中162.168.160.11是你linux的IP地址,用ifconfig就可以查看到
然后顺便把这里改一下,找到[global]把 workgroup = MSHOME改成 :(注意,这里的WORKGROUP是
共享中的工作组名称) 代码:(如果没有也可加上去)
workgroup = WORKGROUP
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936
后面的三行是为了防止出现中文目录乱码的情况。
四.创建samba帐户
现在要添加myname这个网络访问帐户。如果系统中当前没有这个帐户(也可以用系统中
己存在的账户如root,god),那么代码:
sudouseradd myname
上面只是增加了myname这个系统用户,却没有给用户赋予本机登录密码。所以这个用户将只
能从远程访问,不能从本机登录。而且samba的登录密码可以和本机登录密码不一样。这个你可以在重启
机器时看到这个你添加的用户,但是你却用它登陆不了系统,因为没有赋予本机登录密码。
sudo touch /etc/samba/smbpasswd
sudo smbpasswd -amyname
(如果你直接用系统中的账号,这里myname就是你系统中的账户即可)
然后会要求你输入samba帐户的密码
这个密码不是开机登录时候用的,是你要访问WIN共享文件或者WIN共享文件访问你的时候要填的密码
现在要新增网络使用者的帐号:
sudo gedit /etc/samba/smbusers
在新建立的文件内加入下面这一行并保存 代码:
myname= “networkusername”
[如果没有第四步,当你登录时会提示session setup failed: NT_STATUS_LOGON_FAILURE]
删除网络使用者的帐号的命令把上面的 -a 改成 -x 即:sudo smbpasswd -x myname
五.重启samba服务器
sudo testparm
验证一下配置参数有没有问题,如果有问题在回去修改
sudo /etc/init.d/samba restart
(不知为什么,我的这个目录下就是没有这个,用这个命令总是报错)
六. 测试
smbclient -L //localhost/share 或者
smbclient -L \\127.0.0.1 -U myname //这时输入的密码就是你刚才设置的samba密码
七,使用
可以到windows下输入ip使用了,在文件夹处输入 "\\" + "Ubuntu机器的ip或主机名" + "\\" + "share"
我的即为:\\162.168.160.11\share
(share就是刚才smb.conf中的[share])
第一次进入时要输入用户名和密码,这个就是你在第四步中设置的用户名和密码