这两天在学习linux,但是用的却是windows系统,就需要用到数据共享,先使用的是在linux上挂载ISO文件,但后来发现搭建一个服务器可能更快,最终,经过一天的努力,终于搭起来一个samba服务器。现在往回看,其实好像结果很简单,但是中间出现的各种错误,真的是快疯了!还是总结一下。
samba:用来实现SMB(Server Message Block)协议的一种软件,它的工作原理是让NetBIOS (Network Basic Input/Output System)和SMB这两个协议运行于TCP/IP协议之上,并且使用Windows的NetBEUI(Net BIOS Enhanced User Interface)协议,让类UNIX主机可以在网络邻居上被Windows主机看到。它的功能有:a. 实现Linux主机之间和Linux主机与Windows主机之间的文件共享; b. 实现Linux主机之间和Linux主机与Windows主机之间的打印机共享。
在Ubuntu中安装samba服务器。
环境:windows7 Ubuntu10
Ubuntu10的IP地址为192.168.225.129
1 安装服务器软件
sudo apt-get install samba
sudo apt-get install smbfs
启动samba服务器
sudo /etc/init.d/samba start
(现在可能会出现问题,我就出了,会告诉你找不到该命令,此时需要 再安装 sudo apt-get install samba4,并且再次启动时是 使用命令 sudo /etc/init.d/smbd start 或者命令 sudo service smbd start)
相应的 sudo service smbd restart 重启服务
sudo service smbd stop 关闭服务
2 创建共享的文件夹,并将该文件夹设置为可执行态。
mkdir /home/Ubuntu/share
chmod 744 /home/Ubuntu/share
3 给samba的配置文件做配置
//备份smb.conf文件
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
//编辑smb.conf文件
sudo gedit /etc/samba/smb.conf
*smb.conf主要可以分为两部分:前一部分为Global Settings(全局部分),全局部分能够对主机的相关信息进行配置,而且能够配置访问时是否需要密码。常用选项有:
workgroup=MSHOME
这部分是Windows主机的工作组明,Windows主机必须在同一个工作组中,
server string=%h server(Samba,Ubuntu)
这个选项是显示在Windows上的信息,可以自定义,其中%h为Samba配置文件中的变量,代表了主机名,即使用hostname命令得到的主机名。
log file=/var/log/samba/log.%m
这里指定了Samba服务的日志文件所在位置,其中%m也是samb.conf文件的变量,代表了登录主机的NetBIOS名。Windows主机的NetBIOS命令可以通过鼠标右键打开“电脑/属性/高级系统设置/计算机名/更改/其他“来查看。
max log size=1000
设置日志文件的最大尺寸,大小为KB。
4 创建用户及组
sudo groupadd mysmb -------创建组
sudo useradd mysmb -g mysmb -------创建用户mysmb并将该用户分配到组mysmb中,需要强调的是这里的mysmb组和mysmb用户是针对linux系统用户的,而不是samba的用户。需要后面的配置。
5 搜寻下面文字
; security = user 或者 # security = user
(在smb.conf文件中,“; ”和“#”的作用都是注释 )
将其替换成
security = user ------这里是设置了samba的安全等级。
username map = /etc/samba/smbusers
* samba的安全等级一共分为四个安全等级,由低到高分别是
share : 表示任何人都可以不用输入密码登陆。
user : samba默认等级,要求用户必须输入密码才能登陆。
server : user级别的密码都是保存在本机上,而server级别的密码都是保存在另一台主机上。
domain : 这个级别的要求网络里必须有一台windows的域控制器,验证工作由域控制器完成。
6 将下面的几行代码加到最后,允许访问的用户为mysmb,共享的文件夹绝对路径为/home/Ubuntu/share
path = /home/Ubuntu/share ---必须是绝对地址
available = yes
browsealbe = yes
public = yes ---是否允许用户看到此目录,no为看不见
writable = yes ---是否允许用户在此目录下可写,no为不可些,如果可写,还需要目录具有w权限
create mask = 0777 -----用户访问共享文件夹时,可在该文件夹下创建文件
directory mask = 0777 ------用户访问共享文件夹时,可在该文件夹下创建目录
7 创建samba用户
sudo touch /etc/samba/smbpasswd
sudo smbpasswd -a mysmb
注意:samba的用户需要是linux的用户。如果不设置samba用户会提示
session setup fail :NT_STATUS_LOGON_FAILURE;
*
smbpasswd [-选项] 用户名
-a : 新添加一个Samba用户
-d : 禁用一个Samba用户
-e : 解禁一个Samba用户
-x : 删除一个Samba用户
8 重启服务器
service smbd restart
9 测试服务器是否正常建立,Ubuntu的ip地址为192.168.225.129
smbclient -L //192.168.225.129 -U mysmb
输入密码成功后,如果安装成功,会出现类似的信息
或者在windows下进入,在文件夹界面的地址栏输入
10 也可以下载samba的界面管理进行相关操作
sudo apt-get install system-config-samba
sudo system-config-samba -----启动
11 把Ubuntu共享的文件夹映射成为一个网络驱动器,就可以像访问本地硬盘一样访问该文件夹
window下,游击我的电脑,->映像网络驱动器,选择驱动器名称,文件夹路径。
在工作过程中参考了一些博客
http://zzhere2007.blog.163.com/blog/static/85336771201191610570465/?COLLCC=285838566&