samba 是ubuntu和windows之间实现网络共享的工具。
1. 安装samba
sudo apt-get install samba查看安装是否成功:
sudo dpkg -l samba*
输入上面命令会看到如下输出:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-============================================
ii samba 2:3.5.11~dfsg- SMB/CIFS file, print, and login server for U
un samba-client (no description available)
ii samba-common 2:3.5.11~dfsg- common files used by both the Samba server a
ii samba-common-b 2:3.5.11~dfsg- common files used by both the Samba server a
un samba-tools (no description available)
un samba4 (no description available)
un samba4-clients (no description available)
un samba4-common (no description available)前面显示ii表示安装成功了。
2.创建共享目录
假设用户名为user_z
mkdir /home/user_z/share (创建share文件夹用来共享)
chmod 777 /home/user_z/share (更改chare的文件权限为所有用户可读可写可运行)
3. 备份并编辑smb.conf
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
sudo gedit /etc/samba/smb.conf
找到 Authentication参数, 设置 security。
security 的设置可以是为 share, 也可以为 user。设置为 share时,访问不需要用户名和密码,也不需要映射用户和添加用户密码。但是为了安全考虑,此处我们设置为 user, 并设置访问密码
security = user(这里也可以设置为share,这时访问就不需要用户名和密码了。那么就不需要映射用户和添加用户与密码)
username map = /etc/samba/smbusers
设置[share]参数,假设允许访问share文件夹的网络用户名是guest_z(后面要相应地添加该用户)
[Share]
comment = Shared Folder with username and password
path = /home/user_z/share
public = yes
writable = yes
valid users = guest_z
create mask = 0700
directory mask = 0700
force user = nobody
force group = nogroup
available = yes
browseable = yes
找到Global Settings,设置:
workgroup = WORKGROUP #注意,这里的WORKGROUP是共享中的工作组名称
#下面的三行是为了防止出现中文目录乱码的情况
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936
4.添加网络账户guest_zsudo useradd guest_z要注意,上面只是增加了new这个用户,却没有给用户赋予本机登录密码。所以这个用户将只能从远程访问,不能从本机登录。而且samba的登录密码可以和本机登录密码不一样。现在要新增网络使用者的帐号:
sudo smbpasswd -a guest_z
(设置你的new密码,这个密码不是开机登录时候用的,是你要访问WIN共享文件或者WIN共享文件访问你的时候要填的密码)
5. 编辑smbusers文件,(若第一次添加用户,此文件可能不存在,输入下面命令,系统会为我们新建一个smbusers文件)
sudo gedit /etc/samba/smbusers在smbusers文件中加上
new = “network username”保存,退出。
删除网络使用者的帐号的命令把上面的 -a 改成 -x;如 sudo smbpasswd -x guest_z
6. 测试并重启samba,Samba服务会同时启动两个服务,其中smbd主要用来管理共享出来的目录,nmbd主要用来解析NetBIOS名。在Windows系统中, 主机可以被加入一个组中,这样每个主机都必须有一个名字,这个名字是用于在网上被标志的名,并非机器的主机名,将其称为NetBIOS名。其中nmbd进 程是随着smbd进程启动而启动。
sudo testparm #测试
sudo smbd restart
sudo nmbd restart这样,在win7命令行中输入\\linux ip,就可以访问你linux下的文件了。
7.遇到的访问错误:
“multiple connections to a server or shared resource”, 一种可能性如下:
The network folder specified is currently mapped using a different
user name and password. To connect using a different user name and
password, first disconnect any existing mappings to this network
share.
To do this
net use * /delete
Press 'Y' on keyboard