centos 7搭建samba共享给Windows访问

前言

因为经常要用到内网的linux,但是又不想总是使用FinalShell,用终端比较多,喜欢直接进wsl里面ssh过去。传文件体量比较大,所以在Windows下浏览更直观,更好操作。最最最重要的是可以直接在Windows下写bat脚本去处理文件,这个是FinalShell无法达到的。

安装samba

安装samba服务端

1
yum install samba -y

配置samba

备份原smb.conf文件
配置smb.conf文件

1
2
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
vi /etc/samba/smb.conf

smb.conf配置文件里面实际用得上就是第一[global]这个项,其余的可以注释掉,或者重新编辑一个和下面一样的新文件。

  • workgroup = SAMBA这里一定要写对和你需要访问的Windows的工作组,也就是域,如果没有域控的默认就是WORKGROUP。Windows下可以在cmd中执行net config workstation|find "工作站域"查看。其余的配置都默认不需要管。
  • 后面再添加自己共享的配置,path = /mnt/usb这个共享文件夹的路径一定要写对,read only = No关闭只读。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [global]
    workgroup = WORKGROUP
    security = user
    passdb backend = tdbsam
    printing = cups
    printcap name = cups
    load printers = yes
    cups options = raw

    [kod]
    comment = kod
    path = /var/www/html/kod/data/files/
    public = yes
    read only = No
    browseable = yes

永久关闭防火墙

博客里面搜索

启动smaba

设置权限

1
chown wenger:wenger /mnt/usb

开启启动samba
启动samba
查看samba运行状态

1
2
3
systemctl enable smb
systemctl start smb
systemctl status smb

权限配置

如果以上显示正在运行接下来可以配置权限了。
设置samba登录的密码,samba不能直接使用账户登录的密码,是需要重新设置的。-a后面跟上已经添加好了的用户名。

1
smbpasswd -a wenger

如果你是win10,你的本地安全策略里面这一条必须是没有定义,否则怎么弄都无法登录,就跟linux防火墙和SElinux一样狗血,你都搞不清到底啥问题。

图省事在cmd中运行以下命令即可

1
reg delete HKLM\SYSTEM\CurrentControlSet\Control\Lsa\ /v LMCompatibilityLevel /f

可以看到已经登录成功,也可以读写。

参考文献

【转】win10 连接samba 提示用户名或密码不正确
CentOS7和Windows7通过samba共享文件