使用samba实现linux和windows文件共享 |
您所在的位置:网站首页 › WINDOWS共享文件的步骤并详细说明 › 使用samba实现linux和windows文件共享 |
Samba是可以用于Linux/Unix系统与Windows之间共享文件的软件,本文记录一下Samba的安装及使用方法。 目录 samba简介samba安装samba配置1. 查看windows工作组2. 关闭防火墙3. 修改配置文件4. 配置samba登录用户密码5. 启动服务6. windows访问共享文件 smbclient使用登录samba服务器下载上传 samba离线安装配置 samba简介samba的功能都是通过一个CIFS(Common Internet File System)协议套件来管理的,这个名字是由微软引入的。 Samba是一个开源的CIFS实现,官网地址为 https://www.samba.org/samba/。 SMB (Server Message Block Protocol)协议是一种客户端/服务器通信协议,它主要包括smbd 和 nmbd,提供四种基本服务: 文件、打印服务:由SMB守护进程smbd提供验证和授权:“共享模式”和“用户模式”域解析:模拟Windows NT域系统,主要包括广播和点对点两种形式,还有一种是使用NBNS (NetBIOS Name Service)服务器,微软称为WINS服务(Windows Internet Name Service)服务声明(浏览):声明网络上计算机提供的可浏览服务(文件和打印共享)列表。前两个服务由smbd实现,后两个由nmbd来实现。 samba安装centos7: sudo yum install -y samba sudo yum install -y samba-clientubuntu: sudo apt update sudo apt install samba sudo apt install samba-clientsmbclient是一个smb服务器的客户端管理程序。 查看安装状态 $ whereis samba samba: /usr/lib64/samba /etc/samba /usr/libexec/samba /usr/share/man/man7/samba.7.gz $ rpm -qa | grep samba samba-common-4.10.16-15.el7_9.noarch samba-client-4.10.16-15.el7_9.x86_64 samba-client-libs-4.10.16-15.el7_9.x86_64 samba-common-libs-4.10.16-15.el7_9.x86_64 samba-libs-4.10.16-15.el7_9.x86_64 samba-common-tools-4.10.16-15.el7_9.x86_64 samba-4.10.16-15.el7_9.x86_64 $ smbd --version Version 4.10.16 samba配置 1. 查看windows工作组通过cmd命令 net config workstation 查看工作组: C:\Users\10287>net config workstation 计算机名 \\DESKTOP-EHODIV3 计算机全名 DESKTOP-EHODIV3 用户名 Administrator 工作站正运行于 NetBT_Tcpip_{E484BACB-E20F-47EB-8727-EF799C2C041E} (0A0027000016) 软件版本 Windows 10 Home China 工作站域 WORKGROUP 登录域 DESKTOP-EHODIV3 COM 打开超时 (秒) 0 COM 发送计数 (字节) 16 COM 发送超时 (毫秒) 250 命令成功完成。或者查看系统属性:此电脑 -> 属性 -> 高级系统设置 -> 计算机名 查看工作组 配置之前先关闭linux防火墙 查看防⽕火墙状态 systemctl status firewalld systemctl status firewalld.service停⽌止firewall systemctl stop firewalld.service禁止firewall开机启动 systemctl disable firewalld.service [root@Server apTest]# systemctl start smb.service [root@Server apTest]# [root@Server apTest]# [root@Server apTest]# netstat -antpu| grep smb tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 5164/smbd tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 5164/smbd tcp6 0 0 :::139 :::* LISTEN 5164/smbd tcp6 0 0 :::445 :::* LISTEN 5164/smbd [root@Server apTest]#关闭selinux vi /etc/selinux/config 注释SELINUX=enforcing,添加SELINUX=disabled # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. # SELINUX=enforcing SELINUX=disabled # SELINUXTYPE= can take one of three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted 3. 修改配置文件先创建一个共享目录或者使用已有的目录。 $ mkdir -p /var/samba/share $ touch /var/samba/share/test.txt配置读写权限 chmod -R 777 /var/samba配置smb.conf文件:vi /etc/samba/smb.conf 添加的共享名为myshare,这个名称是windows访问时会显示的名称,可以随意设置。 [global] workgroup = WORKGROUP 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 [myshare] comment = my server share dir path = /var/samba/share public = yes writable = yes browseable = yes guest ok = yes guest only = yes read only = no 4. 配置samba登录用户密码可以使用groupadd 和 useradd命令添加用户组,下面我直接使用root用户: $ smbpasswd -a root New SMB password: Retype new SMB password: Added user root.新输的密码就是远程登录密码。 5. 启动服务配置文件设置完成后启动samba服务,并设置开机启动 启动 smb.service 和 nmb.service两个服务 systemctl start smb.service systemctl start nmb.service重启smb服务命令:systemctl restart smb.service 设置开机启动 systemctl enable smb.service systemctl enable nmb.service 6. windows访问共享文件win + r 输入samba服务器地址,访问samba共享文件 也可以在文件浏览器中输入地址 \\192.168.30.9 访问共享文件。 输入用户名密码后就可以访问Linux共享文件了! 可以对myshare中的文件进行读写操作以及文件创建。 smbclient使用samba-client是linux中的客户端管理程序,如果要在linux/unix中访问samba文件可以使用smbclient工具。 登录samba服务器 $ smbclient //192.168.30.9/myshare Enter SAMBA\root's password: Try "help" to get a list of possible commands. smb: \>或者 $ smbclient //192.168.30.9/myshare/ -U root%12345678 Try "help" to get a list of possible commands. smb: \>登录成功后就可以对共享文件进行访问了: smb: \> ls . D 0 Sun Aug 22 10:17:09 2021 .. D 0 Sun Aug 22 09:03:44 2021 test.txt N 0 Sun Aug 22 09:30:59 2021 60273916 blocks of size 1024. 52785976 blocks available smb: \> 下载下载文件: smb: \> get test.txt /root/samba/test.txt getting file \test.txt of size 0 as /root/samba/test.txt (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec) smb: \> $ ll /root/samba/ total 0 -rw-r--r--. 1 root root 0 Aug 22 10:39 test.txt指定日志存放目录 get test.txt /root/samba/test.txt -l /tmp/smb/smbalog下载目录: $ smbclient //192.168.30.9/myshare/ -U root%12345678 -c 'prompt OFF; recurse ON; cd /sambafolder/; lcd /tmp/smb/localfolder/; mget *' -l /tmp/smb/smbalog 上传上传文件 smb: \> put /root/samba/test.txt test.txt上传目录 $ smbclient //192.168.30.9/myshare/ -U root%12345678 -c 'prompt OFF; recurse ON; cd /sambafolder/; lcd /tmp/smb/localfolder/; mput *' -l /tmp/smb/smbalog更多smbclient使用方法参考:https://www.samba.org/samba/docs/current/man-html/smbclient.1.html samba离线安装配置离线安装可参考Ubuntu离线安装samba与配置(.tar方式安装) 配置文件路径:/usr/local/samba/lib/smb.conf 配置文件修改后,可通过以下步骤重启服务: # 杀掉进程 killall -9 smbd killall -9 nmbd # 启动 /usr/local/samba/sbin/smbd -D /usr/local/samba/sbin/nmbd -D检查是否启动成功: $ ps auxf | grep nmbd root 24258 0.0 0.0 112824 972 pts/1 S+ 15:59 0:00 | \_ grep --color=auto nmbd root 23384 0.0 0.0 129796 1408 ? Ss 15:58 0:00 /usr/local/samba/sbin/nmbd -D $ ps auxf | grep smbd root 24379 0.0 0.0 112824 976 pts/1 S+ 15:59 0:00 | \_ grep --color=auto smbd root 23347 0.0 0.0 139896 2312 ? Ss 15:58 0:00 /usr/local/samba/sbin/smbd -D root 23374 0.0 0.0 139896 664 ? S 15:58 0:00 \_ /usr/local/samba/sbin/smbd -D root 23910 0.7 0.0 168972 3360 ? S 15:58 0:00 \_ /usr/local/samba/sbin/smbd -D参考文档: https://www.liquidweb.com/kb/how-to-install-samba-on-linux-windows/https://www.samba.org/samba/docs/SambaIntro.html --THE END-- |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |