win10与虚拟机VBox共享:设置Samba共享

设置Samba共享  主要参考 https://blog.csdn.net/huan447882949/article/details/90815079
Samba是Windows环境中使用的SMB / CIFS网络协议的开源实现,用于共享服务,如文件和打印机访问以及Active Directory。Samba还可用于在名为独立服务器的配置中创建跨平台文件共享。
第一步 - 安装Samba步骤:
1.sudo apt-get update  
这一步可以省略
2.sudo apt-get install samba  
此命令将安装并启动Samba服务器smbd和Samba NetBIOS服务器nmbd。nmbd不需要,因此为了安全起见,您可以使用systemctl停止和禁用它:
sudo systemctl stop nmbd.service
sudo systemctl disable nmbd.service
因为nmbd没有本机systemd管理配置,旧的SysV init系统已经禁用它。而为了避免运行未配置的、启用网络的服务可能导致的安全问题,让我们停止Samba服务器,直到配置详细信息到位:
$ sudo systemctl stop smbd.service
Samba现已安装并准备配置。
检查安装
$ service smbd status
第二步 - 设置Samba的全局选项
创建共享目录
 sudo mkdir -p /home//shareSamba
一般来说,该目录的权限为755,将其改为777之后,Owner之外的其他用户才有权限写入。
 sudo chmod 777 /home//shareSamba

通过修改位于/etc/samba/smb.conf的配置文件来定义Samba服务器的行为方式。该文件包含两部分:[global]和[shares]。[global]配置Samba服务器的行为,[shares]配置文件共享。
在/etc/samba/smb.conf直接编辑前,先备份原配置文件
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
在smb.conf最后添加: 
[share]  
    path = /home//shareSama 
    available = yes  
    browseable = yes  
    writable = yes   # 可以用readonly = no来设置可写
    # public:用来指定该共享是否允许guest账户访问
    public = yes
    # guest 和上面的public 作用一样
    guest = ok
    # 指明新建立的文件的属性,一般是0755
    create mask = 0755
    # 指明新建立的目录的属性,一般是0755
    directory mask = 0755 
    force user = # 强制建立文件的属主是谁,Nobody相当于不指定
    force group=root
    max connections = 100 # 设定最大同时连接数
    case sensitive = no    # yes|no  指明是否对大小写敏感,一般选no,不然可能引起错误

    # 在[全局] [global]部分,确保工作组的值与Windows环境下计算机的工作组设置相同。
    workgroup = WORKGROUP
   #设置安全属性,这里是最低级别
    security = share
    # 要允许一组用户访问共享文件夹,指定能够使用该共享资源的用户和组
    #user=, @<可以使用的组,如SambaShare>
    #valid user =, @<能够使用的组,如SambaShare>
    #read list = user, @group # 指定只能读取该共享资源的用户和组 
    #write list = user, @group # 指定能读取和写该共享资源的用户和组
    #admin list = user, @group # 指定能管理该共享资源(包括读写和权限赋予等)的用户和组
    #sync always = yes   # yes|no  指明对该共享资源进行写操作后是否进行同步操作 

写完后,输入 
testparm
检查所写是否正确

第三步 -创建samba用户
注意,创建samba用户之前,必须先确保有一个同名的Linux用户(已经存在于 /etc/passwd ),否则samba用户会创建失败。
Samba里有些常用的命令,如
pdbedit        -L    查看全部用户
                    -v    详细情况
                    -a   创建用户
                    -x   删除用户
smbpasswd  -x    删除samba服务中的某个用户
                   -a    增加samba服务中的某个用户
                   -n    清空密码或不设密码
$ useradd
$ sudo smbpasswd -a
这里,一般就直接使用登录的用户名,密码可以和登录的密码不一样,如设置成samba。
如果smb.conf里的public = no,此时需要输入samba用户密码;如果public = yes,则作为nobody用户直接访问。

第四步 -最后,重启samba
sudo service smbd restart
或者 
 /etc/init.d/samba restart

下面是Windows10的配置
1、首先知道Ubuntu里的IP地址,要求可以ping通主机,但反过来,宿主机却不能ping不通虚拟机virtualbox,后来参考了
https://www.cnblogs.com/liuyuxing/p/5010880.html 和 http://www.weicot.com/win10-或-linux-从virtualbox中-从主机访问-nat客户机-比如ssh/以及
https://blog.csdn.net/qq_41860138/article/details/102739193 "win10不能访问虚拟机samba共享问题的解决"的方法,做了改正。
参考 https://blog.csdn.net/cxwithyxy/article/details/83864824 里面的方法,修改/etc/samba/smb.conf
[global]
#samba default port is 445 and now it is disabled by telecom
smb ports = 2445
又启动了Win10对 smb1.0/cifs文件共享支持,并重启电脑。
我们在Ubuntu里设置的共享文件夹是/home/shareSamba,因此输入地址
\\10.0.2.x\shareSamba
在配置时候,就允许guest访问。    
但可惜没有连接进入到共享文件夹。后来想了一下,可能上面的做法不适合于主机和虚拟机在一台电脑上,因此不适合端口转发。
于是,在参考了 https://blog.csdn.net/miaokoko/article/details/79254414 "vbox如何在NAT模式下访问samba目录",
就在虚拟机里增加启动了第二块网卡,配置成Host Only模式,此时可以主机终于可以ping通VBox里的Ubuntu(192.168.56.101)。
然后启动cmd,输入 \\192.168.56.101,就可以进入到共享文件夹了。

你可能感兴趣的:(Linux基础)