如何通过Linux中的Samba工具实现文件共享

Samba是Ubuntu和Windows进行网络共享的工具,比如分享打印机,互相之间传输资料文件。
安装samba
sudo apt-get install samba
查看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.8~dfsg-1 SMB/CIFS file, print, and login server for U
un  samba-client            (no description available)
ii  samba-common   2:3.5.8~dfsg-1 common files used by both the Samba server a
ii  samba-common-b 2:3.5.8~dfsg-1 common files used by both the Samba server a
un  samba-gtk               (no description available)
un  samba-ldb-tool          (no description available)
un  samba-tools             (no description available)
un  samba4                  (no description available)
un  samba4-clients          (no description available)
un  samba4-common           (no description available)
un  samba4-common-          (no description available)
最前面的ii表示安装成功。可以看到samba是安装好了。
配置win7访问linux
第一步创建共享目录: 比如要创建/home/用户名/share首先创建这个文件夹 (这个用户名就是你的用户名,比如xiaoming)
代码:
mkdir /home/用户名/share    (新建share文件夹)
chmod 777 /home/用户名/share   (设置该文件夹的权限使其让所有用户可读可写可运行)
备份并编辑smb.conf允许网络用户访问 (养成随时备份的好习惯,在关键的时候你会发现当初的备份是多么的明智!)代码:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
sudo gedit /etc/samba/smb.conf
搜寻这一行文字代码:
; security = user
用下面这几行取代
代码:
security = user(这里也可以设置为share,这时访问就不需要用户名和密码了。那么就不需要映射用户和添加用户与密码)
username map = /etc/samba/smbusers
将下列几行新增到文件的最后面,假设允许访问的用户为:xiaoming。而文件夹的共享名为 Share #这里之所以这么写就是因为后面我们要创建一个smb用户xiaoming,并且让win7用户通过这个new来和我们进行数据交流。当然你可以写为自己喜欢的名字 只不过前后要一致就可以了
代码:
[Share]
comment = Shared Folder with username and password
path = /home/用户名/share
public = yes
writable = yes
valid users = xiaoming
create mask = 0700
directory mask = 0700
force user = nobody
force group = nogroup
available = yes
browseable = yes
然后顺便把这里改一下,找到[global]把 workgroup = MSHOME 改成 :(注意,这里的WORKGROUP是共享中的工作组名称) 代码:
workgroup = WORKGROUP
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936


后面的三行是为了防止出现中文目录乱码的情况。现在要添加new这个网络访问帐户。如果系统中当前没有这个帐户,那么
代码:
sudo useradd xiaoming


要注意,上面只是增加了new这个用户,却没有给用户赋予本机登录密码。所以这个用户将只能从远程访问,不能从本机登录。而且samba的登录密码可以和本机登录密码不一样。现在要新增网络使用者的帐号:
代码:
sudo smbpasswd -a xiaoming (设置你的new密码,这个密码不是开机登录时候用的,是你要访问WIN共享文件或者WIN共享文件访问你的时候要填的密码) sudo gedit /etc/samba/smbusers


在新建立的文件内加入下面这一行并保存
代码:
new = “network username”
如果将来需要更改new的网络访问密码,也用这个命令更改
代码:
sudo smbpasswd -a xiaoming
删除网络使用者的帐号的命令把上面的 -a 改成 -x sudo smbpasswd -x xiaoming
测试并重启samba
代码:
sudo testparm
sudo /etc/init.d/samba restart
这里注意,比如我的安装后/etc/init.d/中就没有samba(为什么没有我还不清楚,清楚的朋友告知以下,:-)),这重启的命令就不再是这个,而是下面的命令:
sudo smbd restart
sudo nmbd restart

这样,在win7命令行中输入\\linux ip,就可以访问你linux下的文件了。


另外,如果Linux和Windows下的共享出现错误,可能是Samba服务关闭了,需要重新启动:

service smbd restart

查看Samba服务是否开启:

service smbd status

你可能感兴趣的:(Linux)