简述
在早期的网络世界中,档案数据在不同主机之间的传输大多是使用FTP服务,但是FTP服务传输档案有一些小小的问题,那就是我们无法直接修改主机上面的档案数据,也就是说我们如果想要修改某个档案的数据时,就必须将该档案的服务器下载后才能修改,这样就很麻烦了。其实解决这个问题也很简单,NFS服务就很好的解决档案数据不能直接修改的问题,因为NFS服务是直接将共享目录挂载到客户端的机器上,那么共享目录就好像成了自己的目录一样,共享数据的使用自然就很方便,但是,NFS也有一些小小的问题,它仅能使Unix Like的机器相互分享。那么我要是需要Windows与Unix-Like这两个不同的平台相互分享呢?那该怎么办?也就是说,FTP服务实现了跨平台分享,却无法修改共享数据;NFS解决了共享数据的修改问题,却没办法实现跨平台的共享。所以,SAMBA服务也就随着需要产生了。 它综合了FTP和NFS的有点,既实现了跨平台的传输,还满足了修改数据的功能。
安装包
服务端:
[root@jiangpeisi ~]# yum install samba -y
客户端:
[root@jiangpesi ~]# yum install samba-client -y
samba实例配置文件详解
注:;开头的行都是实例配置,并不会起作用,#开的的行时注释行
[global]
# ----------------------- Network-Related Options -------------------------
workgroup = MYGROUP 设置Samba所在工作组或域名
server string = Samba Server Version %v 设置服务器描述信息
; netbios name = MYSERVER 设置服务器的NetBIOS名称
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 这只Samba服务器所使用的网卡接口,可以实验网卡的名称或者IP地址
; hosts allow = 127. 192.168.12. 192.168.13. 设置允许访问Samba服务器的网络地址、主机地址及域名,多个参数以空格隔开
# --------------------------- Logging Options -----------------------------
log file = /var/log/samba/log.%m 设置日志文件保存路径和名称。%m代表客户端主机名
max log size = 50 设置日志文件的最大值,单位为KB。当值为0时,表示不限制文件大小
# ----------------------- Standalone Server Options ------------------------
security = user 设置用户访问Samba服务器的安全级别
; encrypt passwords = yes 设置是否对Samba的密码进行加密
; smb passwd file = /etc/samba/smbpasswd 设置Samba密码文件的路径和名称
passdb backend = tdbsam 如果使用加密密码,指定所使用的密码数据库类型
# ----------------------- Domain Members Options ------------------------
; security = domain 设置安全级别为domain,需要指定用户名和密码,指定Windows域控制器做身份验证
; passdb backend = tdbsam
; realm = MY_REALM
; password server = <NT-Server-Name> 指定身份验证服务器
#----------------------------- Name Resolution -------------------------------
; wins support = yes
; wins server = w.x.y.z
; wins proxy = yes
; dns proxy = yes
# --------------------------- Printing Options -----------------------------
load printers = yes 是否允许使用Samba打印机共享
cups options = raw
; printcap name = /etc/printcap
# obtain a list of printers automatically on UNIX System V systems:
; printcap name = lpstat
; printing = cups
# --------------------------- File System Options ---------------------------
; map archive = no
; map hidden = no
; map read only = no
; map system = no
; store dos attributes = yes
#============================ Share Definitions ==============================
[homes] []内设置共享目录的名称
comment = Home Directories 设置共享目录的注释说明
browseable = no 设置在浏览时显示共享目录
writable = yes 设置共享目录可写
create mode 设置默认创建的文件的权限
directory mode 设置默认创建的目录的权限
force group 设置默认创建的文件的群组
force user 设置默认创建的文件的所有者
hosts allow 设置允许访问该共享资源的主机、网段、域
hosts deny 设置不能访问该共享资源的主机、网段、域
; valid users = %S 设置只有允许访问共享目录的用户
; valid users = MYDOMAIN\%S
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no 设置是否允许匿名用户访问共享资源
writable = no
printable = yes
; [netlogon]
; comment = Network Logon Service
; path = /var/lib/samba/netlogon
; guest ok = yes
; writable = no
; share modes = no
; [Profiles]
; path = /var/lib/samba/profiles
; browseable = no
; guest ok = yes
; [public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = no
; printable = no
; write list = +staff 设置可写的用户和群组
配置实例
share级别配置
1.具体参数:
- Samba服务器所在工作组为:workgroup
- Samba服务器描述信息:Samba Server
- Samba服务器NetBIOS名称:test
- 共享目录:sharedir
- 共享目录名:share
- 允许访问服务器的网络:192.168.32.0/24
- 日志文件路径:/var/log/samba/log.%m
- 服务器网卡:ens33
- 访问权限:读写
2.创建共享目录
[root@jiangpeisi ~]# mkdir sharedir
3.修改配置文件
[root@jiangpeisi userdir]# vim /etc/samba/smb.conf
修改配置如下:
[global]
workgroup = SAMBA
# security = share
server string = Samba Server
netbios name = test
interfaces = ens33 lo
hosts allow = 192.168.32. 127.
log file = /var/log/samba/log.%m
[share]
comment = share
path = /sharedir
public = yes
貌似现在samba不支持直接指定security = share选项,添加会报错警告,这里先注释掉。
4.服务器修改共享文件权限
[root@jiangpeisi ~]# chmod 777 -R /sharedir/
5.客户端登陆并创建文件
[root@jiangpesi ~]# smbclient //192.168.32.152/share
Enter SAMBA\root's password:
Anonymous login successful
Try "help" to get a list of possible commands.
mb: \> mkdir a
smb: \>
6.服务器查看客户端创建的文件
[root@jiangpeisi samba]# cd /sharedir/
[root@jiangpeisi sharedir]# ll
总用量 0
drwxr-xr-x 2 nobody nobody 6 4月 13 22:56 a
由于使用的匿名登陆,所以客户端登陆时会默认映射到nobody(nfsnoboody)用户,所以创建的文件所属用户和组都为noboody。
user级别配置
1.具体参数:
- Samba服务器所在工作组为:workgroup
- Samba服务器描述信息:Samba Server
- Samba服务器NetBIOS名称:test
- 共享目录:userdir
- 共享目录名:user
- 允许访问服务器的网络:192.168.0.0/16
- 日志文件路径:/var/log/samba/log.%m
- 服务器网卡:ens33
- 对Samba密码进行加密
- 加密数据库类型为:tdbsam
- userdir目录的所有者和群组所有者为user
- 访问权限:读写
2.创建组和用户
[root@jiangpeisi ~]# useradd user
2.创建samba用户
[root@jiangpeisi ~]# smbpasswd -a user
New SMB password:
Retype new SMB password:
Added user user.
3.创建共享目录
[root@jiangpeisi ~]# mkdir /userdir
4.递归设置userdir目录的所有者和组为user
[root@jiangpeisi ~]# chown -R user.user /userdir/
5.修改配置文件
[root@jiangpeisi userdir]# vim /etc/samba/smb.conf
修改配置文件如下
[global]
workgroup = SAMBA
server string = Samba Server
netbios name = test
interfaces = ens33
hosts allow = 192.168. 127.
log file = /var/log/samba/log.%m
security = user
passdb backend = tdbsam
encrypt passwords = yes
[user]
comment = user
path = /userdir
writable = yes
public = no
测试
linux测试
1.客户端登陆:
[root@jiangpesi ~]# smbclient //192.168.32.152/user -U user
Enter SAMBA\user's password:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Sat Apr 13 23:10:58 2019
.. DR 0 Sat Apr 13 23:10:58 2019
17811456 blocks of size 1024. 15489980 blocks available
smb: \> mkdir a
smb: \> ls
. D 0 Sat Apr 13 23:23:23 2019
.. DR 0 Sat Apr 13 23:10:58 2019
a D 0 Sat Apr 13 23:23:23 2019
17811456 blocks of size 1024. 15490020 blocks available
2.服务端查看:
[root@jiangpeisi userdir]# ll
总用量 0
drwxr-xr-x 2 user user 6 4月 13 23:23 a
3.挂载
[root@jiangpesi ~]# mount -o username=user //192.168.32.152/user /mnt/user
mount: //192.168.32.152/user 写保护,将以只读方式挂载
mount: 无法以只读方式挂载 //192.168.32.152/user
出现此问题是因为缺少cifs-utils,安装包后重新挂载。
[root@jiangpesi ~]# yum -y install cifs-utils
[root@jiangpesi ~]# mount -o username=user //192.168.32.152/user /mnt/user
[root@jiangpesi ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 17G 2.0G 15G 12% /
devtmpfs 478M 0 478M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.7M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 1014M 139M 876M 14% /boot
tmpfs 98M 0 98M 0% /run/user/0
//192.168.32.152/user 17G 2.3G 15G 14% /mnt/user
4.挂载后使用
客户端创建文件:
[root@jiangpesi ~]# cd /mnt/user/
[root@jiangpesi user]# touch b
[root@jiangpesi user]# ll
总用量 0
drwxr-xr-x. 2 1000 1000 0 4月 13 23:23 a
-rw-r--r--. 1 1000 1000 0 4月 13 23:37 b
服务端查看:
[root@jiangpeisi userdir]# ll
总用量 0
drwxr-xr-x 2 user user 6 4月 13 23:23 a
-rw-r--r-- 1 user user 0 4月 13 23:37 b
windows测试:
1.客户端登陆
注意是斜杠(\)反斜杠不是(/)windows和linux路径分割符不同。
2.创建文件
3.编辑文件
4.服务器查看
[root@jiangpeisi userdir]# ll
总用量 4
drwxr-xr-x 2 user user 6 4月 13 23:23 a
-rw-r--r-- 1 user user 0 4月 13 23:37 b
-rwxr--r-- 1 user user 9 4月 13 23:45 新建文本文档.txt
[root@jiangpeisi userdir]# cat 新建文本文档.txt
测试
[root@jiangpeisi userdir]#
windows添加网络位置
1.在设备和驱动区域点击右键
2.添加服务器共享目录位置
3.添加完成
添加完网络位置,samba共享目录就可以像本地windows本地目录一样使用了。