Ubuntu下添加samba实现和windows共享文件

来源:互联网 发布:c语言位运算判断奇偶 编辑:程序博客网 时间:2024/06/10 04:49

一,Samba简介
     Samba(SMB是其缩写)是一个网络服务器,用于Linux和Windows共享文件之用;Samba即可以用于Windows和Linux之间的共享文件,也一样用于Linux和Linux之间的共享文件;不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS,NFS也是需要架设服务器的。大家知道在Windows网络中的每台机器即可以是文件共享的服务器,也可以同是客户机;Samba也一样能行,比如一台Linux的机器,如果架了Samba Server后,它能充当共享服务器,同时也能做为客户机来访问其它网络中的Windows共享文件系统,或其它Linux的Sabmba 服务器。
    我们在Windows网络中,看到共享文件功能知道,我们直接就可以把共享文件夹当做本地硬盘来使用。在Linux的中,就是通过Samba的向网络中的机器提供共享文件系统,也可以把网络中其它机器的共享挂载在本地机上使用;这在一定意义上说和FTP是不一样的。

二,Samba的几个套件,安装及简单配置
      安装套件:samba,samba-client,samba-common
      安装命令:sudo apt-get install samba samba-client samba-common
      安装完毕后,去找了个文件夹,点击右键选择“共享选项”,然后去设置共享的时候,若出现错误"执行子进程“testparm”失败(没有那个文件或目录)", 如下图:


    即,安装另外一个samba套件,即可解决问题。
        sudo apt-get install samba-common-bin
    启动samba服务:

    按照提示,去操作,就可以启动samba服务了: 

    关于需要去添加samba用户的事情,记得Linux系统里面,有图形用户界面的工具去配置samba的,而不需要用命令行这么麻烦的。去安装samba图形管理界面:
         sudo apt-get install system-config-samba
    然后,就可以通过 系统 -> 系统管理 -> Samba,启动samba的图形界面。此处要提醒的是,在给samba添加用户之前,需要先保证系统中已经有了该用户,所以,对于我这次的需求,只允许一个test的用户访问我的某个文件夹。
    那么具体设置方法就是:
        1.先去系统中建立这个用户,在添加samba的共享之前,先去:
        系统 -> 系统管理 -> 用户和组,新建一个test的用户。
        2.将该用户添加到samba的用户中去
        系统 -> 系统管理 -> Samba -> samba服务器配置 -> 首选项 -> Samba用户 -> 添加用户,找到对应的那个test,然后确定。
        3.然后在samba中添加共享文件夹,设置该samba用户可以访问
        在samba中,可以新建一个共享或用之前你准备好的共享文件夹,然后设置该用户test可以访问该文件夹/文件。
        即,因为你在前面添加了该samba用户,所以你才能在“只允许指定用户的访问”中,看到此test用户,才能选择test。

        这样,就设置完毕共享了,去windows下面直接输入此ubuntu所在电脑的ip,可以通过ifconfig(如IP为192.168.1.101)查看。
        所以直接在另一台windows下面在资源管理器的地址栏中输入:
            \\192.168.1.101
        即看到从ubuntu中通过samba共享出来的文件夹了,和其他普通两个windows之间的那种共享,没啥区别。

    注:【查看samba服务是否已经启动】
        ps -aux
        如果进程太多,那么就: 

        其中找到smbd,就说明samba的服务已经启动了。另外,去查看nmbd服务是否也已经启动:


        其中smbd和nmbd的解释是:
            “可以看到Samba服务会同时启动两个服务,其中smbd主要用来管理共享出来的目录,nmbd主要用来解析NetBIOS名。在Windows系统中,主机可以被加入一个组中,这样每个主机都必须有一个名字,这个名字是用于在网上被标志的名,并非机器的主机名,将其称为NetBIOS名。其中nmbd进程是随着smbd进程启动而启动。”


三,互访
    1)windows访问ubuntu
        windows访问ubuntu很简单, 先在ubuntu上设置共享目录即可,鼠标右键点目录,选择sharing options, 够选share this folder,需要的话也可以够选下面的allow write
这时在windows的网络邻居中的网络中查找就能找到共享目录了。

    2)ubuntu访问windows
    第一种:在ubuntu的网络中直接浏览访问
        位置->网络,点击界面中windows网络->workgroup,在workgroup组中就可以看到windows计算机名,双击会弹出输入用户名和密码的对话框,将我们上面设置smb的用户名和密码输入就可以进行访问。

    第二种:用ubuntu 系统自带的连接到服务器功能访问
        位置->连接到服务器,在服务类型中选择“windows共享”,在服务器中输入windows计算机的ip地址或计算机名,点击连接,这样在系统桌面中就会显示一个连接到windows 计算机的文件卷,里面就是windows计算机的共享目录了。同样在访问的时候要输入smb的用户名和密码。

    第三种:用mount’挂载windows的共享目录到本地磁盘
        首先要在ubuntu系统中建立一个挂载点,在这里我们建立的挂在点为 /mnt/share
        同样在保证网络连接正常,且windows中有共享目录的前提下,进行一下操作
        以windows的ip为192.168.0.1,共享文件夹为share为例
        命令如下:
            mount -t smbfs –o username=test,password=123456 //192.168.0.1/share /mnt/share
        有是这样在访问的时候会出现中文乱码的问题,这样我们可以按下面命令来执行,可以解决这个问题
            mount -o smbfs -o iocharset=uft8,codepage=cp936,clmask=777,fmask=777,userneme=test,password=123456 //192.168.0.1/share /mnt/share
        注解:usename和password都为smb的用户和密码,如果要详细了解mount命令,使用man mount在终端查看详细用法

    第四种:使用smbclient命令
        一般来讲先列出所有共享目录,命令如下:
        smbclient –L //192.168.0.1/ -U yourname
        输入smb的密码后,将看到共享目录列表。
        假设进入共享目录share,命令如下:
        smbclient  //192.168.0.1/share -U yourname
        之后将看到一个smb:>
        已经进入了smb模式,有些像ftp,敲help可以查看相关命令,get,put可以下载和上传文件。


本文参考如下:

ubuntu 10.10下面添加samba实现和windows共享文件

samba实现ubuntu跟windows文件共享

执行子进程“testparm”失败(没有该文件或目录)

安装samba图形管理界面

原创粉丝点击