samba,连接Unix阵营和Windows系统的桥梁。在类Unix系统中安装samba服务端,让windows系统像访问共享文件夹一样访问类Unix系统中的指定文件夹。

samba,桑巴舞蹈也是它呢!给一个软件起了这样性感的名字,想想是不是醉了。

有了这个小家伙,解决了我们局域网多个系统互相访问文件的×××烦。下面是全过程。

1.安装samba,apt-get 推荐我安装samba4.

[html] view plain copy

  1. sudo apt-get install samba4  


安装时遇到错误:

[plain] view plain copy

  1. /var/lib/dpkg/info/samba4.postinst: 14: /var/lib/dpkg/info/samba4.postinst: /usr/share/samba/setoption.pl: Permission denied  

  2. dpkg: error processing samba4 (--configure):  

  3. subprocess installed post-installation script returned error exit status 126  

  4. Errors were encountered while processing:  

  5. samba4  

  6. E: Sub-process /usr/bin/dpkg returned an error code (1)  


应该是我的dpkg有问题,源于上一次的apt-get upgrade中途被我人工阻断。
解决的办法是删掉/var/lib/dpkg/info这个文件夹并重新创建它。

[html] view plain copy

  1. cd /var/lib/dpkg  

  2. sudo mv info info.bak  

  3. sudo mkdir info  

重新install就可以了。

2.在/home下创建文件夹用以共享

[html] view plain copy

  1. home$ sudo mkdir share  

  2. home$ sudo chmod 777 share  

创建一个文件在share文件夹中,一会用它作为访问成功与否的标志。

3.修改smb的配置文件

之前可以先做个备份

[html] view plain copy

  1. home$ sudo cp /etc/samba/smb.conf /etc/samba/smb-bk.conf  

  2. home$ sudo vim /etc/samba/smb.conf   

找到security = user这一句,如果被注释了,就放开注释。
在其后增加一句:username map = /etc/samba/smbusers
在文件的最后增加下面语句:

[html] view plain copy

  1. [Share]  

  2. comment = Shared Folder  

  3. path = /home/share  

  4. public = yes   

  5. writeable = yes   

  6. valid users = friend  

  7. create mask = 0700  

  8. directory mask = 0700  

  9. force user = nobody  

  10. force group = nogroup  

  11. available = yes   

  12. browseable = yes   


上面设置了文件的路径和可用的用户为friend。

再搜索[global]
在workgroup = workgroup下面增加如下:

[html] view plain copy

  1. display charset = UTF-8  

  2. unix charset = UTF-8  

  3. dos charset = cp936  

保存并退出。

4.增加friend账户

[html] view plain copy

  1. home$ sudo useradd friend  

为friend设置smb密码

[html] view plain copy

  1. home$ sudo smbpasswd -a friend  

  2. New SMB password:  

  3. Retype new SMB password:  

  4. Added user friend.  

5.新建smbusers文件并增加一行语句

[html] view plain copy

  1. home$ sudo vim /etc/samba/smbusers  

  2. friend = "network username"  

6.重启smbd

[plain] view plain copy

  1. home$ sudo service smbd restart  


查看smbd监听端口
home$ sudo netstat -tlnp | grep smb
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      5224/smbd       
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      5224/smbd   

7.在windows中测试

命令行输入\\my ip
就可以访问了。

参考:
http://linux.vbird.org/linux_server/0370samba.php