zoukankan      html  css  js  c++  java
  • 一起来学linux:SAMBA服务器搭建

    前面介绍的NFS服务器的用来linuxlinux系统之间共享文件和目录的,那如果是linuxwindows之间需要共享修改文件该如何操作呢。这据需要用到SAMBA系统。我们首先来看下SAMBA系统如何搭建。

    1 ubuntun系统没有自带SAMBA,所以需要额外安装

    apt install samba

    2 安装好后开始启动samba

    root@zhf-linux:/home/zhf# /etc/init.d/samba start

    [ ok ] Starting nmbd (via systemctl): nmbd.service.

    [ ok ] Starting smbd (via systemctl): smbd.service.

    [ ok ] Starting samba-ad-dc (via systemctl): samba-ad-dc.service.

    3 可以通过ps -aux查看samba的启动

    root@zhf-linux:/home/zhf# ps -aux | grep samba

    root 6153 0.0 0.0 5104 844 pts/0 S+ 09:08 0:00 grep --color=auto samba

    root@zhf-linux:/home/zhf# ps -aux | grep nwbd

    root 6157 0.0 0.0 5104 832 pts/0 S+ 09:08 0:00 grep --color=auto nwbd


    ()windows免密码登陆linux共享目录:

    Samba服务器主要配置文件为/etc/samba/smb.conf。 我们首先来看下windows中不用输入密码访问Linux共享目录的方法。因此首先编辑smb.conf文件。将文件中的内容进行如下修改;

    security=share

    并在文件末尾添加如下行:

    [share]

    comment=this is linux share directory

    path=/home/zhf/zhf

    public=yes

    writable=yes


    保存退出,重启samba服务器

    /etc/init.d/samba start

    windows下访问共享目录,点击运行,输入 \192.168.0.11share 这样就能以匿名用户访问共享目录share了。

    这里介绍下设置的这几个参数。首先是securitysecurityshare,user,domain三种设置

    share: 共享的数据不需要密码

    user:使用samba服务器本身的密码数据库,密码数据库与下面的passdbbackend有关

    domain:使用外部服务器密码


    comment:目录的说明

    pathlinux中的共享路径

    writable:是否可以写入。这里就可以看出samba服务器和FTP服务器之间的差别。FTP服务器虽然可以直接下载,但是无法在服务器上直接修改文件。只有下载后在本地下载,然后继续上传。而samba则可以支持在服务器上在线修改文件



    () 需要账户密码才可登陆的共享(security=user)

    前面介绍了不经过密码直接登陆samba服务器的方法,设置十分简单。不过这样不需要密码直接访问的方式不太安全。我们来看下通过samba服务器提供的认证方式来进行用户权利的分配,也就是说,必须要输入正确的帐号和密码后,才能够登陆samba查看你自己的数据

    既然需要帐号和密码,首先我们来添加新的帐号,然后设置帐号用户名,下面命将smb1用户加入到users组里面

    root@zhf-linux:/var/log/samba# useradd -G users smb1

    通过passwd命令设置用户名密码

    root@zhf-linux:/var/log/samba# passwd smb1

    Enter new UNIX password:

    Retype new UNIX password:

    passwd: password updated successfully



    创建共享的文件夹:

    root@zhf-linux:/etc# mkdir /home/project

    root@zhf-linux:/etc# chgrp users /home/project

    root@zhf-linux:/home# chmod 2770 /home/project


    samba用户帐号必须要存在与/etc/passwd中,但是samba的密码与linux的密码可以不一样。前面我们新增了用户并且设置了密码。但是对于samba服务器来说,用户的密码文件都默认存在/var/lib/samba/private内,且用户密码使用TDB数据库格式。因此我们需要将新增的用户添加到TDB数据库中去

    使用pdbedit命令进行添加

    root@zhf-linux:/var/log/samba# pdbedit -a -u smb1

    new password:

    retype new password:

    Unix username: smb1

    NT username:

    Account Flags: [U ]

    User SID: S-1-5-21-144210916-2780440130-1362333617-1000

    Primary Group SID: S-1-5-21-144210916-2780440130-1362333617-513

    Full Name:

    Home Directory: \zhf-linuxsmb1

    HomeDir Drive:

    Logon Script:

    Profile Path: \zhf-linuxsmb1profile

    Domain: ZHF-LINUX

    Account desc:

    Workstations:

    Munged dial:

    Logon time: 0

    Logoff time: never

    Kickoff time: never

    Password last set: Mon, 06 Nov 2017 09:50:48 CST

    Password can change: Mon, 06 Nov 2017 09:50:48 CST

    Password must change: never

    Last bad password : 0

    Bad password count : 0

    Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF


    还可以查看下面有多少用户。修改密码可以采用smbpasswd smb1的命令

    root@zhf-linux:/var/log/samba# pdbedit -L

    smb1:1101:


    添加好用户后,下一步就是需要编辑smb.conf文件

    [global]

    security=user

    passdb backend=tdbsam

    [homes]

    comment = home directory

    browseable = no

    writeable = yes

    create mode = 0664

    directory mode = 0775

    [project]

    comment = smbuser’s project

    path =/home/project

    browseable = yes

    writable = yes

    write list = @users

    window下输入\192.168.0.11 可以看到projectshare 两个共享目录,点击project会提示输入用户名和密码。输入后可能会遇到不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接 的提示。

    事实上这个不是samba的限制。是Windows的限制。
    始终要用publicyes的话,上面的方法都不能有效解决,因为:
    在打开存在publicyessamba服务器时,如果首先点击了有publicyes的共享资源的时候,widows会用默认的用户名去连接服务器,一般就是windows的登录名(可以在服务器端查看到的),这时候,再去点击没有publicyes的共享资源,由于使用了user级别,服务器就会要求验证,这时,之前的默认登录已经存在,就出现了这种故障了

    这个是windows的问题,解决办法有2个:

    1 使用命令net use * /del /y

    2 注销windows然后重新进入

    3 设置public=no

  • 相关阅读:
    我所理解的MVC
    关于开发文化的思考
    使用纯C语言开始win32 sdk编程
    谈谈编译原理和其在WEB开发中的应用1
    最简单的win32程序(c语言实现)
    关于Javascript的一些心得与记忆
    Cvv.WebUtility 我的MVC框架介绍
    发现了个不错的图片网站
    轻轻松松做开发--目前网站开发的流行原素
    我的模板分析引擎类PHP的.net开发方法标签设计篇
  • 原文地址:https://www.cnblogs.com/zhanghongfeng/p/7797413.html
Copyright © 2011-2022 走看看