美文网首页
linux共享文件夹

linux共享文件夹

作者: IT小池 | 来源:发表于2018-11-17 14:01 被阅读0次

    samba是一个实现不同操作系统之间文件共享和打印机共享的一种SMB协议的免费软件。

    1.安装samba

    使用Xshell以“root”用户远程连接CentOS7,进入系统命令行界面,使用“rpm -qi samba"命令查询是否已经安装了Samba,然后使用“yum install samba”命令,下载Samba包并安装

    yum install samba
    // 卸载命令
    yum remove –y samba
    
    2.创建账户

    useradd name,如:

    useradd xiaoer
    // 删除账户
    userdel xiaoer
    

    smbpasswd –a tkl-share(设置samba账户和密码,即远程登陆账号密码,可以和root一样)

    smbpasswd -a xiaoer
    
    3.创建共享目录

    我这里是在系统盘/home目录创建的共享目录,

    mkdir /home/test
    // 目录权限
    chmod -R 777 /home/test
    

    使用命令chmod -R 777/home/test,将整个myshare文件夹与其中的文件和子目录的权限都设置为rwxrwxrwx,即所有人都可以查看操作

    4.配置samba

    注:smb.conf配置文件分为两大类,一个全局设置参数,一个是文件共享设置参数
    使用命令cd /etc/samba进入Samba配置文件目录,并使用ls列出该目录下所有的文件,其中smb.conf~bak,是使用命令cp smb.conf smb.conf~bak对Samba配置文件做的一个备份,然后编辑 samba 的配置文件 smb.conf,进行如下配置:

    [global]
            workgroup = workgroup  // 设置为与Windows一样的workgroup
            security = user  // security:user表示用户名验证方式
            server string = Tkl Samba Server %v
            passdb backend = tdbsam
            map to guest = Bad User  // CentOS7以上必须设置,否则 samba 服务无法启动
            printing = cups
            printcap name = cups
            load printers = yes
            cups options = raw
            netbios name = TklSamba
            passdb backend = tdbsam
    [test]
            comment = yuandian // 描述信息
            path = /home/test  // 共享目录路径
            # admin users  =  root // 设置共享的管理员,如果security =share 时,引项无效,多用户中间使用逗号隔开,例如admin users = root,user1,user2
            valid users = root  // 远程登陆用户,就是前面创建的用户(设置允许访问共享的用户,例如valid users = user1,user2,@group1,@group2(多用户或组使用逗号隔开,@group表示group用户组))
            browseable = Yes  // 设置共享是否可浏览,如果no就表示隐藏,需要通过IP+共享名称进行访问
            # read only = No  // 设置共享是否具有只读权限
            # inherit acls = Yes
            # write list  =  username // 设置在共享具有写入权限的用户,例如例如write list  = user1,user2,@group1,@group2(多用户或组使用逗号隔开,@group表示group用户组)
            writable = Yes  // 设置共享是否具有可写权限
            create mask = 0700 // 创建的文件权限为700
            directory mask = 0775 // 创建的文件目录为 775
            public = Yes  // 设置共享是否允许guest账户访问
            available = yes  // 指定该共享资源是否可用
    

    说明:
    [global]
    1. workgroup设置为与Windows一样的workgroup
    2. security:user表示用户名验证方式,share表示不需要账号密码就可以访问(安全性低,且CentOS7以下可用,CentOS7以上会导导致 samba 服务无法启动)
    3. map to guest = Bad User // CentOS7以上必须设置,否则 samba 服务无法启动
    其他配置照着上面写即可
    [test]
    注意:
    配置文件中writeable=yes 表示允许这个目录可写,只有设置了writeable=yes,后对create mask 和directory mask 等等一系列预设值才有效

    5.关闭防火墙
    /etc/init.d/iptables stop   // 关闭防火墙
    chkconfig --list iptables  // 查看防火墙启动状态
    chkconfig iptables off     //关闭防火墙开机自动启动
    

    注意:Samab服务开启之前需要关闭两个服务,iptables防火墙(如果你熟悉可以不关闭,放行smb的端口即可,SAMBA服务TCP端口139,445 UDP端口 137,138)
    centOS7防火墙开放端口及重启

    firewall-cmd --zone=public --add-port=139/tcp --permanent
    firewall-cmd --zone=public --add-port=445/tcp --permanent
    firewall-cmd --zone=public --add-port=137/udp --permanent
    firewall-cmd --zone=public --add-port=138/udp --permanent
    
    firewall-cmd --reload
    systemctl restart firewalld.service
    
    6.关闭selinux
    vim /etc/selinux/config   // 永久关闭selinux
    把 set SELINUX=disabled   # SELINUX=enforcing改为SELINUX=disabled
    
    7.启动 samba服务(smb服务名称)
    systemctl start smb  // 启动 samba 服务
    systemctl enable smb  // 设置开机启动 samba 服务
    systemctl status smb  // 查看 samba 服务启动状态
    

    reboot重启服务器

    启动之后,在 windows 中,按住 win + r 输入Linux服务的ip与共享目录,如:\\192.168.102.101\test,就可以访问到共享目录了。
    注意:此时,可能会遇到一些 windows 7 访问时,输入用户与密码 会显示未知用户或密码错误
    解决方法:
    按住 win + r 输入 secpol.msc ,之后依次打开 本地策略 => 安全选项 => 网络安全LAN身份验证级别 改为 发送 LM 和 NTLM – 如果已协商,则使用 NTLMv2会话安全 再次访问,如果还不行就继续改为 仅发送 NTLMv2响应,就ok了。

    相关文章

      网友评论

          本文标题:linux共享文件夹

          本文链接:https://www.haomeiwen.com/subject/bpnbfqtx.html