Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

  环境:Win7_64位+VMware11+Ubuntu1204

  一,同其他网络服务一样,使用Samba服务必须要保证服务器与客户端能够联网,即能够ping通,否则请先调试网络。

  二,如果使用的是Ubuntu1204以前的版本,建议先卸载samba,smbclient,samba-common。  

    1 sudo apt-get remove samba-common
     sudo apt-get remove smbclient
     sudo apt-get remove samba

    下载安装Samba服务:

    1 sudo apt-get install samba
     sudo apt-get install samba-common
     sudo apt-get install smbfs   //在旧版的Ubuntu中,你可能需要使用 smbfs替代cifs-utils。
     sudo apt-get install cifs-utils //新版本 ubuntu1204已安装

    注:如果在安装samba过程中出现错误

        samba : Depends: libwbclient0 (= 2:3.6.3-2ubuntu2) but 2:3.6.3-2ubuntu2.3 is to be installed

      则卸载后重新安装samba

        sudo apt-get remove libwbclient0 samba-common samba

        sudo apt-get install samba  //apt-get会自动补全依赖包

  三,创建共享目录

    sudo mkdir /home/share
    sodu chmod 777 /home/share

  四,开始配置/etc/samba/smb.conf

   1. 保存现有的配置文件

      sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

   2. 修改现配置文件

      sudo vi /etc/samba/smb.conf

   3. 在smb.conf最后添加

    [share]
        path = /home/share    #共享目录绝对路径
        available = yes     #共享资源可用
        browseable = yes      #共享目录可浏览
        public = yes       #允许匿名用户登录
        writable = yes      #共享目录可写

    【共享属性详解】

comment = 任意字符串

  说明:comment是对该共享的描述,可以是任意字符串。
path = 共享目录路径
  说明:path用来指定共享目录的路径。可以用%u、%m这样的宏来代替路径里的unix用户和客户机的Netbios名,用宏表示主要用于[homes]共享域。例如:如果我们不打算用home段做为客户的共享,而是在/home/share/下为每个Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成:path = /home/share/%u; 。用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,就可以这样写:path = /home/share/%m 。
browseable = yes/no
  说明:browseable用来指定该共享是否可以浏览。
writable = yes/no
  说明:writable用来指定该共享路径是否可写。
available = yes/no
  说明:available用来指定该共享资源是否可用。
admin users = 该共享的管理者
  说明:admin users用来指定该共享的管理员(对该共享具有完全控制权限)。在samba 3.0中,如果用户验证方式设置成“security=share”时,此项无效。
  例如:admin users =bobyuan,jane(多个用户中间用逗号隔开)。
valid users = 允许访问该共享的用户
  说明:valid users用来指定允许访问该共享资源的用户。
  例如:valid users = bobyuan,@bob,@tech(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@+组名”表示。)
invalid users = 禁止访问该共享的用户
  说明:invalid users用来指定不允许访问该共享资源的用户。
  例如:invalid users = root,@bob(多个用户或者组中间用逗号隔开。)
write list = 允许写入该共享的用户
  说明:write list用来指定可以在该共享下写入文件的用户。
  例如:write list = bobyuan,@bob
public = yes/no
  说明:public用来指定该共享是否允许guest账户访问。
guest ok = yes/no
  说明:意义同“public”。

    注:如果不习惯使用配置文件,也可以使用图形界面

    安装Ubuntu samba图形管理界面

      sudo apt-get install system-config-samba

    启动samba图形管理界面
      sudo system-config-samba

  

  五. 创建samba帐户

    sudo touch /etc/samba/smbpasswd
    sudo smbpasswd -a john

   然后会要求你输入samba帐户的密码

  [如果没有这一步,当你登录时会提示 session setup failed: NT_STATUS_LOGON_FAILURE]

   

    smbpasswd 命令的用法:
    smbpasswd -a 增加用户(要增加的用户必须以是系统用户)   
    smbpasswd -d 冻结用户,就是这个用户不能在登录了   
    smbpasswd -e 恢复用户,解冻用户,让冻结的用户可以在使用   
    smbpasswd -n 把用户的密码设置成空,要在global中写入 null passwords -true   
    smbpasswd -x  删除用户

  六,配置完成后要重启samba
      sudo /etc/init.d/smbd restart

  七,测试及使用

    测试:输入smbclient -L //localhost/share

    使用:到windows在文件夹处输入 "\\" + "Ubuntu机器的ip或主机名" + "\\" + "share"

高级:用户账号映射

   samba的用户帐号信息是保存在smbpasswd文件中滴,而且可以访问samba服务器的帐号也必须对应一个同名的系统帐号。基于这 一点,所以,对于一些hacker来说,只要知道samba服务器滴samba帐号,就等于是知道了Linux系统帐号,只要crack其samba帐号密码加以利用就可以攻击samba服务器。所以我们要使用用户帐号映射这个功能来解决这个问题。

用户帐号映射这个功能需要建立一个帐号映射关系表,里面记录了samba帐号和虚拟帐号的对应关系,客户端访问samba服务器时就使用虚拟来登录。

1)编辑主配置文件vi /etc/samba/smb.conf 
在global下添加一行字段username map = /etc/samba/smbusers开启用户帐号映射功能。

2)编辑 vi /etc/samba/smbusers 
smbusers文件保存帐号映射关系,其有固定滴格式: 
samba帐号 = 虚拟帐号(映射帐号) 
  myname = networkusername 
帐号myname就是我们上面建立的samba帐号(同时也是Linux系统帐号),networkusername就是映射的帐号名(虚拟帐号),帐号 myname在我们访问共享目录时只要输入networkusername就可以成功访问了,但是实际上访问samba服务器的还是我们的myname帐号,这样一来就解决了安全问题。

Ubuntu配置Samba文件共享服务器的更多相关文章

  1. 用Centos7搭建小微企业Samba文件共享服务器【转】

    转自 用Centos7搭建小微企业Samba文件共享服务器 - 今日头条(www.toutiao.com)http://www.toutiao.com/i6436937837660078593/ 最近 ...

  2. Linux 下安装Samba 文件共享服务器

    samba文件共享服务可以让linux和linux系统.linux和windows系统之间共享文件 服务查询 默认情况下,Linux系统在默认安装中已经安装了Samba服务包的一部分,为了对整个过程有 ...

  3. 红帽7配置samba文件共享服务

    samba软件主要功能是为客户机提供共享使用的文件夹. 使用的协议是SMB(TCP 139).CIFS(TCP445). 所需的软件包:samba 系统服务:smb 1.安装samba服务 ~]#yu ...

  4. openwrt 配置samba && ubuntu 配置samba

    前言:在修改opkg update的下载目录,公司里不能连外网,尝试用samba. 配置samba很简单,修改/etc/config/samba文件,拷贝一下share项,再改一下name就可以了. ...

  5. ubuntu 配置 samba服务器

    samba配置的安装: sudo apt-get install samba smbfs smbclient 二. 创建共享目录: mkdir /home/komy/sharesudu chmod 7 ...

  6. Samba - 文件共享服务器的搭建和配置

    下载与安装: deb包安装 官方deb包下载:http://packages.ubuntu.com/ 命令安装dpkg –i xxxx.deb (安装不成功留意日志安装依赖包) apt安装 apt-g ...

  7. Ubuntu配置samba服务器

    假设我的Ubuntu用户名:myname 1. 安装和卸载samba: sudo apt-get install samba samba-common sudo apt-get autoremove ...

  8. Ubuntu配置Samba

    一.安装Ubuntu samba服务器 $ sudo apt-get install samba $ sudo apt-get install smbclient # Linux客户端测试用 二.创建 ...

  9. ubuntu 配置 samba, win7 map network device from linux

    一. samba的安装: # sudo apt-get insall samba # sudo apt-get install smbfs 二. 创建共享目录,或是找已经存在的文件夹,只要权限放开就行 ...

随机推荐

  1. 问题 3: 糖果数(candy)

    问题 3: 糖果数(candy) 题目描述 学校准备去春游,委托小明分发糖果,每位同学一袋,数量随机. 一共有N袋糖果,编号为1到N,小明拿了从编号a袋到编号b袋的糖果去分发,小明想知道,他一共拿了多 ...

  2. C#拷贝整个文件夹以及子目录和其中文件

       private void CopyDirectory(string srcPath, string desPath)         {             string folderNam ...

  3. TC学习总结

    带宽管理: TC中规定描述带宽: mbps = 1024 kbps = 1024 * 1024 bps => byte/s mbit = 1024 kbit => kilo bit/s m ...

  4. nginx添加模块

    [root@VM_0_3_centos nginx]# ./sbin/nginx -V nginx version: nginx/1.12.2 built by gcc 4.8.5 20150623 ...

  5. 题解报告:hihoCoder #1050 : 树中的最长路

    描述 上回说到,小Ho得到了一棵二叉树玩具,这个玩具是由小球和木棍连接起来的,而在拆拼它的过程中,小Ho发现他不仅仅可以拼凑成一棵二叉树!还可以拼凑成一棵多叉树——好吧,其实就是更为平常的树而已. 但 ...

  6. html2canvas如何将div转成图片并下载,如何将滚动条的内容截取下来

    <!DOCTYPE html> <html lang="en"> <head> <meta name="layout" ...

  7. MySQL FailOver(官方自带,free)

    为什么 传统复制和GTIDs切换的缺点 当replication故障出现之后,最头疼是replication架构的调整 一旦master down了,就需要配置某一台slave作为master sla ...

  8. ASP.NET MVC Identity 兩個多個連接字符串問題解決一例

    按照ASP.NET MVC Identity建立了一個用戶權限管理模塊,由于還要加自己已有的數據庫,所以建立了一個實體模型,建立了之后,發現登錄不了: 一直顯示“Login in failed for ...

  9. 关于重置功能(type="reset")的相关问题

    当一个按钮具有 type="reset";的按钮是具有重置表单标签的功能的,但是当具有type="hidden"; 属性的标签的值就不会被重置,这点要留意.可以 ...

  10. hadoop的安装和配置

    hadoop安装 在Apache Hadoop主页的下载页面https://hadoop.apache.org/releases.html选择版本进行下载: 下载下来的是压缩包: 将压缩包使用Xftp ...