samba实现跨平台文件共享

前言:Linux/Unix主机之间实现文件共享我们可以使用NFS,那么,Linux/Unix和Windows主机之间共享文件怎么实现呢,samba就是解决这个问题的。

Windows网上邻居依赖的协议:

  NetBIOS(137/udp,138/udp,139/tcp)
  CIFS/SMB 445/tcp 共享文件
  Winbindd 让Linux主机加入Windows AD域,AD域使用的LDAP服务器
  LDAP(Linux上使用Opneldap)

Windows上访问共享文件使用UNC路径:\\IP\共享名

如果在Linux上实现了上述协议,那么Linux就可以和Windows文件共享了,Linux上使用samba服务来实现。

实现windows访问Linux共享文件:

(1)samba用户控制:

  它使用系统用户,密码由samba单独控制。

(2)软件安装:

  yum -y install samba.x86_64 samba-client.x86_64 samba-common.x86_64

  默认会安装winbind服务,这里我们不做配置。
  执行事务
    正在安装   : libtalloc-2.1.5-1.el6_7.x86_64                                            1/7
    正在安装   : libtevent-0.9.26-2.el6_7.x86_64                                           2/7
    正在安装   : samba-common-3.6.23-36.el6_8.x86_64                                       3/7
    正在安装   : samba-winbind-3.6.23-36.el6_8.x86_64                                      4/7
    正在安装   : samba-winbind-clients-3.6.23-36.el6_8.x86_64                              5/7
    正在安装   : samba-3.6.23-36.el6_8.x86_64                                              6/7
    正在安装   : samba-client-3.6.23-36.el6_8.x86_64                                       7/7

(3)samba进程:

nmbd:提供netbios
smbd:提供文件共享SMB
如果加入winbind,会启动winbind
服务控制脚本:/etc/rc.d/init.d/smb

(4)samba配置文件:

/etc/samba/
smb.conf 主
lmhosts windows上的特有的文件,用于名称解析。host——wins——DNS——lmhosts
smbusers  把linux用户映射成windows用户

smb.conf
#开头是纯注释信息,;开头的也是注释,但他是可启用的参数。

大致分为两类:
全局配置:Global Settings
共享定义:Share Definitions

Global Settings
[global]
----Network Related Options
workgroup = WORKGROUP
server string = Samba Server Version %v  主机描述信息,一般不输出
netbios name = MYSERVER   主机名

----Logging Options
log file = /var/log/samba/log.%m
max log size = 50

----Standalone Server Options  独立服务进程
security = user   安全级别
passdb backend = tdbsam  用户账号和密码存放格式,模拟的tdb格式存储的sam文件

----Browser Control Options  浏览控制信息,和domain相关

Share Definitions
[homes] 用户家目录访问控制
comment = Home Directories  注释,说明信息
browseable = no  浏览权限
writable = yes

[public] 共享名
comment = Network Logon Service
path = /home/samba
public = yes
writable = yes
read only =
write list = user1,user2,
			 @group,+group
valid users = %S  白名单,限制那些用户能访问
invalid users = 

例如:/share/test
[tools]
        comment = Share Testing
        path = /share/test
        public = yes
        writable = yes

配置文件测试:

testparm
[[email protected] ~]# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[tools]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
	server string = Samba Server Version %v
	log file = /var/log/samba/log.%m
	max log size = 50
	client signing = required
	idmap config * : backend = tdb
	cups options = raw

[homes]
	comment = Home Directories
	read only = No
	browseable = No

[printers]
	comment = All Printers
	path = /var/spool/samba
	printable = Yes
	print ok = Yes
	browseable = No

[tools]
	comment = Share Testing
	path = /share/test
	read only = No
	guest ok = Yes

(5)启动进程:

[[email protected] ~]# service smb start
启动 SMB 服务:                                            [确定]
[[email protected] ~]# netstat -anp | grep smb
tcp        0      0 0.0.0.0:139                 0.0.0.0:*                   LISTEN      1383/smbd
tcp        0      0 0.0.0.0:445                 0.0.0.0:*                   LISTEN      1383/smbd
tcp        0      0 :::139                      :::*                        LISTEN      1383/smbd
tcp        0      0 :::445                      :::*                        LISTEN      1383/smbd
unix  2      [ ]         DGRAM                    11487  1385/smbd
unix  2      [ ]         DGRAM                    11470  1383/smbd

 (6)添加用户:

[[email protected] ~]# useradd samba_user
[[email protected] ~]# id samba_user
uid=501(samba_user) gid=501(samba_user) 组=501(samba_user)

把系统账户加入samba
[[email protected] ~]# smbpasswd -a samba_user
New SMB password:
Retype new SMB password:
Added user samba_user.

(7)共享文件权限:

  访问权限是由文件系统和samba服务共同控制。

  修改文件系统权限:

[[email protected] ~]# ll -d /share/test/
drwxr-xr-x 2 root root 4096 3月  11 16:43 /share/test/
[[email protected] ~]# setfacl -m u:samba_user:rwx /share/test/

 (8)Windows UNC访问:

  直接访问主机:

  \\192.168.31.168\  输入用户名:samba_user   密码:123456

  显示用户家目录及tools共享目录,就像访问本地目录一样,在家目录和tools目录创建文件:home_file.txt,tools.txt

  在Linux验证:可以看到在Windows创建的文件有执行权限,这个可以使用samba控制,具体用到时再来研究。

[[email protected] ~]# ll /home/samba_user/
总用量 0
-rwxr--r-- 1 samba_user samba_user 0 3月  11 16:54 home_file.txt
[[email protected] ~]# ll /share/test/
总用量 0
-rwxr--r-- 1 samba_user samba_user 0 3月  11 16:57 tools.txt
[[email protected] ~]#

单独访问tools: \\192.168.31.168\tools   可以在Windows中添加访问位置。

到此,完成Windows访问Linux/Unix文件功能。

实现Linux/Unix访问Windows共享:

(1)Windows创建共享文件,添加win_user用户

(2)Linux主机访问共享:

  smbclient //192.168.31.85/win_samba_share -U win_user

[[email protected] ~]$ smbclient //192.168.31.85/win_samba_share -U win_user
Enter win_user‘s password:
Domain=[DESKTOP-VUBVLHE] OS=[Windows 10 Pro 14393] Server=[Windows 10 Pro 6.3]
smb: \> ls
  .                                   D        0  Sat Mar 11 18:29:23 2017
  ..                                  D        0  Sat Mar 11 18:29:23 2017
  win_file.txt                        A        0  Sat Mar 11 18:25:51 2017

		60603 blocks of size 524288. 33153 blocks available
smb: \> mkdir myfile
smb: \> ls
  .                                   D        0  Sat Mar 11 18:43:55 2017
  ..                                  D        0  Sat Mar 11 18:43:55 2017
  myfile                              D        0  Sat Mar 11 18:43:55 2017
  win_file.txt                        A        0  Sat Mar 11 18:25:51 2017

		60603 blocks of size 524288. 33153 blocks available
smb: \> rmdir win_file.txt
NT_STATUS_NOT_A_DIRECTORY removing remote directory file \win_file.txt
smb: \> rm win_file.txt
smb: \> ls
  .                                   D        0  Sat Mar 11 18:44:30 2017
  ..                                  D        0  Sat Mar 11 18:44:30 2017
  myfile                              D        0  Sat Mar 11 18:43:55 2017

		60603 blocks of size 524288. 33153 blocks available
smb: \>

 (3)挂载至/mnt/win_dir:

  确保安装cifs-utils:yum install cifs-utils.x86_64 -y

[[email protected] ~]# mount -t cifs //192.168.31.85/win_samba_share /mnt/win_dir/ -o username=win_user
Password:
[[email protected] ~]# df -h
文件系统	      容量  已用  可用 已用%% 挂载点
/dev/sda3              20G  2.0G   17G  11% /
tmpfs                 699M     0  699M   0% /dev/shm
/dev/sda1              97M   28M   64M  31% /boot
//192.168.31.85/win_samba_share
                       30G   14G   17G  46% /mnt/win_dir

[[email protected] ~]# cd /mnt/win_dir/
[[email protected] win_dir]# ls
myfile  新建文本文档.txt
[[email protected] win_dir]# touch abc
[[email protected] win_dir]# ll
总用量 0
-rwxr-xr-x 1 root root 0 3月  11 18:51 abc
drwxr-xr-x 1 root root 0 3月  11 18:43 myfile
-rwxr-xr-x 1 root root 0 3月  11 18:48 新建文本文档.txt

 加入开机自动挂载:

[[email protected] mnt]# vim /etc/samba/cred.passwd

[[email protected] mnt]# chmod og=--- /etc/samba/cred.passwd 

[[email protected] mnt]# ll /etc/samba/cred.passwd
-rw------- 1 root root 34 3月  11 18:56 /etc/samba/cred.passwd

[[email protected] mnt]# cat /etc/samba/cred.passwd
username=win_user
password=123456
[[email protected] mnt]# umount /mnt/win_dir/
[[email protected] mnt]# df -h
文件系统	      容量  已用  可用 已用%% 挂载点
/dev/sda3              20G  2.0G   17G  11% /
tmpfs                 699M     0  699M   0% /dev/shm
/dev/sda1              97M   28M   64M  31% /boot
[[email protected] mnt]# mount -a
[[email protected] mnt]# df -h
文件系统	      容量  已用  可用 已用%% 挂载点
/dev/sda3              20G  2.0G   17G  11% /
tmpfs                 699M     0  699M   0% /dev/shm
/dev/sda1              97M   28M   64M  31% /boot
//192.168.31.85/win_samba_share
                       30G   14G   17G  46% /mnt/win_dir
 

到此,完成Linux对Windows文件共享的访问。

Linux/Unix之间相互访问:

和访问Windows相似,挂载到文件系统也一样,这里不再赘述。

[[email protected] ~]$ smbclient //192.168.31.168/tools -U samba_user
Enter samba_user‘s password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-36.el6_8]
smb: \> ls
  .                                   D        0  Sat Mar 11 16:57:11 2017
  ..                                  D        0  Sat Mar 11 16:43:10 2017
  tools.txt                           A        0  Sat Mar 11 16:57:04 2017

		39109 blocks of size 524288. 33197 blocks available
smb: \> mkdir jiang
smb: \> ls
  .                                   D        0  Sat Mar 11 16:57:11 2017
  ..                                  D        0  Sat Mar 11 16:43:10 2017
  jiang                               D        0  Sat Mar 11 19:44:51 2017
  tools.txt                           A        0  Sat Mar 11 16:57:04 2017

		39109 blocks of size 524288. 33197 blocks available
smb: \> rmdir jiang
smb: \>

 

时间: 2024-10-11 11:40:05

samba实现跨平台文件共享的相关文章

配置Samba服务器配置现实文件共享(详解)

配置Samba服务器配置现实文件共享     一:实验环境 Samba服务端:xuegod63.cn   IP:192.168.1.63 Samba客户端:xuegod64.cn   IP:192.168.1.64 1:关闭iptables #很重要 2:关闭selinux 二:实验目标 1.samba服务器概述 2.samba服务器配置文件 3.实战,举例 三:实验代码 第一块:Samba服务概述:     Samba 最先在Linux 和Windows 两个平台之间架起了一座桥梁,正是由于S

2-5-NFS服务器配置和autofs自动挂载-配置Samba服务器配置现实文件共享

大纲: NFS服务器运行原理 实战配置NFS服务器 配置Samba服务器配置现实文件共享 ----------------------------------------------- 问题: # 怎么查看文件系统类型?! file -s /dev/sda #可查看未挂载的文件系统 df -T  #df -lhT #查看已挂载文件系统 mount #查看已挂载文件系统 fdisk /dev/sda  <输入 c 或 u 或 p 查看信息> parted  <输入p  打印分区表>

Samba 简单快速文件共享

Samba 简单快速文件共享Samba是linux,unix与windows之间进行交互操作的软件组件.所需软件包括:samba(服务器端软件包),samba-client(客户端软件包)和samba-common(公共文件软件包) samba由smbd和nmbd两个守护进程组成,smbd默认监听端口是TCP 139和445. ① 快速安装配置Samba服务器Yum –y install samba② 创建共享目录Mkdir /commonChmod 777 /commonEcho "hello

在Linux上搭建Samba服务器,用于与Windows之间的跨平台文件共享

Samba是著名的开源软件项目之一,它在Linux/UNIX系统中实现了微软的SMB/CIFS网络协议,使得跨平台的文件共享变得更加容易.在部署Windows.Linux/UNIX混合平台的企业环境时,选用Samba可以很好的解决在不同系统之间的文件互访问题. 今天,让我们尝试在Redhat上搭建smaba服务,并且通过Win7作为客户端去使用samba服务的不同功能. 部署Samba服务(匿名共享访问.本地用户访问.虚拟用户访问): )安装软件包: rpm -ivh /mnt/Packages

搭建samba服务---实现跨平台文件共享

概述 Samba是著名的开源软件项目之一,它在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务.SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统.打印机及其他资源.通过设置"NetBIOS over TCP/IP"使得Samba不但能与局域网络主机分享

树莓派进阶之路 (018) - 树莓派通过filezilla,samba与PC文件共享(转)

虽然我们可以很方便的通过ssh譬如putty或者vnc连接操控树莓派,但是毕竟树莓派资源没那么高,在上面编程,调试要吃力的多.所以还是想在pc上编程上传到树莓派或者最好,文件共享,可以直接读写共同的文件那就perfect! 一.filezilla 1,安装vsftpd服务器 (约400KB)sudo apt-get install vsftpd 2,启动ftp服务sudo service vsftpd start 3,编辑vsftdp的配置文件 sudo nano /etc/vsftpd.con

红帽7 Samba服务实现文件共享

Samba 文件共享服务 首先需要先通过Yum 软件仓库来安装 Samba 服务程序(Samba 服务程序的名字也恰巧是软件包的名字) [[email protected] ~]# yum install samba Loaded plugins: langpacks, product-id, subscription-manager This system is not registered to Red Hat Subscription Management. You can use sub

centos 7 安装Samba服务(文件共享)

今天是一个安装samba文件共享服务首先依旧是先把Linux服务器改为静态IP vim /etc/sysconfig/network-scripts/ifcfg-ens33然后挂载系统光盘 mount /dev/sr0 /mediasamba服务的安装包有11个之多,所以使用yum安装比较容易yum -y install /media/Packages/samba-* 因为samba服务的安装包多.所以后面以通配符*表示安装完毕之后进入配置文件 vim /etc/samba/smb.conf配置

linux 配置 Samba 服务器实现文件共享

1. 下载samba yum install samba 2. 启动samba 服务 service smb start 3.配置samba 打开/etc/samba/smb.conf 写入一下内容 将共享的目录设置为Linux 根目录, 名称叫做master 4. 添加samba 用户 smbpasswd  -a   koorey  #添加用户koorey到Samba用户数据库中 下一步会提示输入密码,设置后重启smb服务 5 访问 在window 下访问 注意:一定要把iptables 和