【网络】通过Samba实现Window挂在Linux服务器路径

有时候我们去进行内网部署时,会遇到客户或者甲方爸爸说,需要将Linux中的某个路径共享出去到Window上,挂载出比如Z:\这种盘符。通过打开Z盘,来查看服务器的指定目录下的数据。

步骤1: 在Linux中安装samba
shell 复制代码
yum install samba samba-client
步骤2:配置Samba共享
  • 配置samba配置文件

    shell 复制代码
    vim /etc/samba/smb.conf
  • 配置内容如下

conf 复制代码
[global]
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775
[shared]
   path = /data/shared
   browseable = yes
   writable = yes
   valid users = public
   create mask = 0755
  • 设置用户和路径
shell 复制代码
#创建分享的目录
mkdir -p /data/shared
chmod 0755 /data/shared

#创建用户
adduser public
#设置密码
passwd public
  • 设置分享目录的访问用户和密码
shell 复制代码
smbpasswd -a public
  • 重启smb服务
shell 复制代码
systemctl restart smb
systemctl restart nmb
步骤3:Window中挂载网络位置

找到我的电脑->网络->右键->映射网络驱动器

文件夹内容按照示例当中的格式去写: \\server\share,根据上面我写的例子中,文件夹的内容就应该是

\\服务器ip\shared

  • server: 服务器ip
  • share: 在smb.conf中 设置的[]中的内容

点击完成后,系统会提示要求输入凭证,你把刚才分享目录的访问用户和密码填入即可,就可以连接啦。

步骤4:验证

连接成功后,点击我的电脑,在C盘底下会出现如下盘符挂在。

点击进入,创建一个hello.txt文件。

到linux服务器中查看

步骤5: 排查问题

如果windows下登录samba服务器后无法访问linux下共享目录,提示没有权限。

则检查

a、确保linux下防火墙关闭或者是开放共享目录权限

b、确保samba服务器配置文件smb.conf设置没有问题,可网上查阅资料看配置办法

c、确保setlinux关闭,可以用setenforce 0命令执行。 默认的,SELinux禁止网络上对Samba服务器上的共享目录进行写操作,即使你在smb.conf中允许了这项操作。 /usr/bin/setenforce 修改SELinux的实时运行模式

setenforce 1 设置SELinux 成为enforcing模式

setenforce 0 设置SELinux 成为permissive模式

如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0 ,或者在/etc/grub.conf中添加这个参数

/usr/bin/setstatus -v

相关推荐
靡樊10 分钟前
Linux:进程间通信
linux·服务器·c++·学习
pp-周子晗(努力赶上课程进度版)1 小时前
【Linux】线程ID、线程管理、与线程互斥
linux·运维·服务器·开发语言
菜一头包2 小时前
GNU,GDB,GCC,G++是什么?与其他编译器又有什么关系?
linux·c++·学习·gnu
冰茶_2 小时前
TCP/IP和UDP协议的发展历程
网络·tcp/ip·udp
结衣结衣.2 小时前
【MySQL】数据类型
linux·数据库·sql·mysql
萑澈2 小时前
深入探索 Unix 与 Linux:历史、内核及发行版
linux·服务器·unix
未来之窗软件服务2 小时前
数字人,磁盘不够No space left on device,修改python 执行环境-云GPU算力—未来之窗超算中心
linux·开发语言·python·数字人
Zhuai-行淮3 小时前
施磊老师基于muduo网络库的集群聊天服务器(二)
开发语言·网络·c++
爱学习的大牛1233 小时前
Linux 内核开发/测试工具对比 Windows 驱动验证工具 (Driver Verifier)
linux·测试工具·内核