samba分享

samba软件是一款模仿netbios的软件,用于linux-windows,linux-linux文件共享。用户通过samba访问共享文件的时候需要密码验证,用户名是samba服务器上的用户,密码则是samba专门维护的密码而非原用户密码。


samba进程:nmbd:提供netbios(端口:137/udp,138/udp,139/tcp)

                    smbd:提供文件共享(端口:445/tcp)


配置文件:/etc/init.d/smb  启动脚本

                /etc/samba/smb.conf  主配置文件

                smbusers    将linux用户映射成windows用户

                lmhosts        解析


配置文件解释:

            netbios name = MYSERVER    ##当前主机的netbios名称,如果没启动就默认是当前主机主机名的第一段
            workgroup = MYGROUP    ##工作组
            server string = Samba Server Version %v    ##鼠标悬停显示的内容
            log file = /var/log/samba/log.%m    ##独立的日志文件
            max log size = 50    ##最大日志大小50kb
            security = share    ##安全级别
            passdb backend = tdbsam      ##密码格式
            cups options = raw    ##打印服务的选项
            comment = Home Directories    ##注释
            browseable = no    ##是否能被他人浏览
            writable = yes    ##是否有写权限
            guest ok = no    ##来宾账号是否可以访问
            path =       ##共享路径
            read only =     ##是否只读
            write list = user1,user2  @group-name  ##可写用户(组)列表
            valid users =     ##白名单
            invalid_ sers      ##黑名单    

安装配置samba:

  1. 安装samba:yum install -y samba samba-client

  2. 修改主配置文件(一般修改下边几项):

    security = share    ##这里改成share(我测试不改得话后面挂载可能有问题)

        workgroup = MYGROUP

    3.共享/share/test:

        mkdir -pv /share/test
        vim /etc/samba/sam.conf
            [tools]
                    comment = share test
                    path = /share/test
                    public = yes
                    writeable = yes
        testparm    ##检测语法正确性
        service smb start
        netstat -antlp

    4.将系统用户添加为samba用户账号:

           smbpasswd -a student    ##提示输入samba密码,最好和系统密码有所区别。

    5. 测试:
    在windows主机我的电脑地址栏输入\\samba-ip\连接到samba共享服务器,查看是否可以看见共享
    的tools和用户家目录,在家目录中创建一根文件,然后在linux上该用户的家目录中可以看见刚创建的文件。

注意:/share/test目录用户可能没有写权限,使用setfacl -m u:student:rwx /share/test


为了方便可以直接在windows中映射成本地驱动器。


下面实现windows共享目录让linux访问并挂载到本地:

1.在windows中的任意盘中创建一个文件夹share,在其中创建一个文件夹test,右键test选择共享和安全,
选择“如果你知道”这一项,点击“启用文件共享”,之后选择“在网络上共享这个文件夹”,起一个共享名,
选择“允许网络用户更改我的文件”,确定即可。至此windows共享结束。

2.linux访问此共享:
    smbclient -L    ##指定主机ip或netbios名
                  -U    ##用户名

    smbclinet -L ip  ##这里是windows地址

也可以在windows上创建一个用户登录 -U时指定他。

访问windows    smbclient //windows-ip/test -U 用户
访问linux    smbclinet //linux-ip/共享目录 -U 用户

如果登录成功显示smb提示符。

在smb提示符中,使用lcd可切换目录,例:lcd /etc,put上传文件。例:put fstab
    !命令 表示调用shell命令,例:!cd  !pwd

下面进行挂载:
    mount -t cifs //ip/共享目录 /挂载点 -o username=student
    ##以student身份挂载到本地,文件系统cifs

开机自动挂载:
    echo //ip/共享目录 /挂载点 cifs credentials=/etc/samba/cred.passwd 0 0 >>/etc/passwd
##credentials=/etc/samba/cred.passwd 是保存挂载用户的名字和密码的文件,这样是为了安全,名字随意,在其中写入username= password=


samba基于ip 的访问控制:
    hosts allow = ip地址或网段(172.25. 192.)    ##白名单
    host deny =     ##黑名单

samba通过web访问:
1.
yum install -y samba-swat

2.
service xinetd start    ##swat服务通过xinetd代理。
chkconfig swat on    ##netstat 查看有901端口
vim /etc/xinetd.d/swat
    disable        ##是否不启动,改为no
    wait        ##是否允许多用户同时使用,选择为no
    only_from    ##允许的ip或网段(默认为本机),这里改为网段为例:172.25.0.0/16
    user        ##以什么身份运行,保持默认
service xinetd restart

打来浏览器,输入ip:901,提示输入密码,进入samba网页管理页面,可以管理服务,查看,踢出链接的用户,
   

你可能感兴趣的:(samba分享)