ubuntu 16.04 Samba服务器搭建

Posted 努力让自己更优秀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu 16.04 Samba服务器搭建相关的知识,希望对你有一定的参考价值。

搭建Samba服务器是为了实现Linux共享目录之后,在Windows可以直接访问该共享目录。

现在介绍如何在ubuntu 16.04系统中搭建Samba服务。

1、安装Samba服务

sudo apt install samba

  在安装过程中出现如下错误: 

          错误:1 http://mirrors.aliyun.com/ubuntu xenial-updates/main amd64 samba-libs amd64 2:4.3.11+dfsg-0ubuntu0.16.04.7
        404  Not Found [IP: 91.189.88.161 80]
        .....
        .....
        E: 有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?

  按照提示执行apt-get update

sudo apt-get update

  然后在重新安装。

2、修改配置文件

sudo vim  /etc/samba/smb.conf

  ubuntu的Samba配置相对于红帽的要稍微简单一点,直接在最后添加共享目录的属性就可以了。

  不用设置security的值,设置了反而容易出错。

  在文件的末尾直接添加以下内容

[need]      # Windows访问Samba服务器是显示目录名,顶格写
  comment = need share    # 对该共享目录的描述,随便写
  browseable = yes        # 共享目录是否可见,no不可见,yes或不写默认可见
  path = /share           # 共享的目录路劲
  create mask = 0777      # 创建文件的默认权限
  directory mask = 0777   # 创建目录的默认权限
  valid users = tom       # 指定登录的用户,该项不写,则默认对所有人可见
  force user = nobody     # 指定的用户可以进行登录,其他用户没有权限登录,nobody不限制
  force group = nogroup   # 同上,指定用户组
  public = yes            # 是否对所有登录成功的用户可见
  writable = yes          # 写权限,目录的权限也要许可
  available = yes         # 同样是设置共享目录是否可见

  ubuntu是否需要登录有valid users这个参数决定,如果该参数不添加,则不需要登录。

  添加该参数并指定用户,则该用户需要登录。

3、重启Samba服务

sudo /etc/init.d/samba restart

  重启出现错误  

        [....] Restarting nmbd (via systemctl): nmbd.serviceJob for nmbd.service failed because the control process exited with error code. See "systemctl status nmbd.service" and "journalctl -xe" for details.
        failed!

  错误原因:

    Samba Server 版本为 4.2 或以上不支持 security = share,可将其去掉或改为 security = user,也就是Samba server 4.以上的版本,对于Windows访问是需要登录还是直接进行访问,
       将不再是有security=share或者security= user决定,而是由后面的共享文件的属性决定。所以一般忽略security。
  

  解决办法:

    将security = share删除

4、创建用户

    sudo adduser tom
    正在添加用户"tom"...
    正在添加新组"tom" (1001)...
    正在添加新用户"tom" (1001) 到组"tom"...
    创建主目录"/home/tom"...
    正在从"/etc/skel"复制文件...
    输入新的 UNIX 密码:        <-- 用户登录密码,这个跟登录Samba的密码没有任何联系
    重新输入新的 UNIX 密码:
    passwd:已成功更新密码
    正在改变 tom 的用户信息
    请输入新值,或直接敲回车键以使用默认值
        全名 []: tom
        房间号码 []:
        工作电话 []:
        家庭电话 []:
        其它 []:
        这些信息是否正确? [Y/n] y

5、将用户添加到Samba服务器列表中

sudo smbpasswd -a tom   <-- 该用户必须存在
New SMB password:               <-- 登录Samba服务的密码
Retype new SMB password:

  如果用户不存在则会提示以下错误:
     Failed to add entry for user xxxx
6、访问
    1) valid users = tom 该项没有
        Windows端: \'win\' + R 输入"本机的IP" ,就可直接访问共享目录
  

  

  

 


    2) valid users = tom 添加了该项
        Windows端: \'win\' + R 输入"本机的IP" 访问共享目录时需要登录
        而且只有tom用户可以登录,其他用户就算是在Samba
        服务器的列表中,也是登录失败的。

  

  

  成功登录


  

  


    3) 增加多用户登录
        valid users = tom,lily,xxx
        创建用户和添加到Samba服务器列表中参考步骤4和5
  那么这时候在这个列表中的用户都可以登录成功。


 

以上是关于ubuntu 16.04 Samba服务器搭建的主要内容,如果未能解决你的问题,请参考以下文章

在Ubuntu16.04 64位下搭建samba,实现linux与windows之间的资源共享

Ubuntu 16.04中使用Samba共享文件

Samba 服务搭建

samba集成AD域控(ubuntu-16.04)

ubuntu16.04 配置samba服务器登录home目录

Ubuntu16.04 samba服务配置