一、安装samba

sudo apt-get update
sudo apt-get install samba samba-common-bin
sudo apt-get install libtalloc2

二、重启服务器
重新启动Samba服务器:

sudo /etc/init.d/samba restart

可以使用ps -aux命令查看进程是否有:smbd和nmbd服务。

三、配置/etc/samba/smb.conf文件

sudo vi /etc/samba/smb.conf

在末尾添加

# 显示的名称
[root]
    # 说明信息
    comment = myshare dir
    # 共享文件的路径。
    path = /hmoe
    # 可被其他人看到资源名称(非内容)
    browseable = yes
    # 可写
    writable = yes
    # 新建文件的权限为 777
    create mask = 0777
    # 新建目录的权限为 777
    directory mask = 0777

使用命令testparm测试配置文件是否有错误,根据提示做相应修改
若出现WARNING: The ‘netbios name’ is too long (max. 15 chars).可以通过在配置文件添加netbios name = smbserver解决

四、添加登陆账户并创建密码
最好是系统已存在的用户。eg:

sudo smbpasswd -a root

五、访问
再次重启samba服务器并关闭防火墙

sudo ufw disable

用同一网段其他电脑访问:
windows:在运行中输入\\+ip,eg:\\192.168.1.12
为了方便,我们可以把root目录添加到映射,下次访问就不用再输入ip。操作如下:
打开 计算机 - 映射网络驱动器,添加完成后,会提示输入用户名和密码,并且把 “记住我的凭据” 勾选上。
mac: 在连接服务器中输入;smb://192.168.1.12

六、手动设置开机自启动
若需手动配置为开机自启,编辑/etc/rc.local,添加:

sudo /etc/init.d/samba restart

七、可能遇到的问题
1、有共享目录却无法打开
在windows下访问时看得到共享目录root却无法打开,弹出“无法访问。指定的网络名不再可用”
可能需要重新安装libtalloc2

sudo apt-get remove samba libtalloc2
sudo apt-get autoremove
sudo apt-get install samba libtalloc2

2、主机能ping通虚拟机但虚拟机不能ping通主机
提示From 192.168.1.3 icmp_seq=1 Destination Host Unreachable
可以试着将虚拟机配置为NAT模式,并将主机上网络中心的网络适配器VMnet8开启

3、重启服务器错误

sudo /etc/init.d/smbd  restart
sudo /etc/init.d/nmbd  restart

使用以上两个命令重启时提示错误,可以分别通过以下指令查看打印信息

sudo smbd -FS  (-F:让smbd服务运行在前台,-S:让log输出在控制端)
sudo nmbd -FS

4、windows下修改或删除已保存的samba输入的凭据
可在系统的"控制面板\用户帐户\凭据管理器\windows 凭据中找到samba的ip或者电脑名称,删除即可。再注销/重启电脑就能生效了。

5、Samba配置文件常用参数详解