samba
, samba
。1. samba简介
。2. samba访问
。3.示例.
。作业(博客)
- samba简介
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。
在此之前我们已经了解了NFS, NFS与samba- -样,也是在网络中实现文件共享的一种实现,但
不幸的是,其不支持windows平台,而本章要提到的samba是能够在任何支持SMB协议的主机之
间共享文件的一种实现,当然也包括windows.
SMB (Server Messages Block,信息服务块)是-种在局域网上共享文件和打印机的- -种通信
协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
SMB协议是C/S型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资
Samba监听端口有: .
TCP UDP
139 137
445 138
tcp端口相对应的服务是smbd服务,其作用是提供对服务器中文件、打印资源的共享访问。
udp端口相对应的服务是nmbd服务,其作用是提供基于NetBIOS主机名称的解析。samba进程:进程对应nmbd对应netbiossmbd对应cifs协议
| 进程 | 对应 |
|-nmbd-|-对应netbios-|
| smbd |对应cifs协议 |
winbindd + ldap对应Windows AD活动目录
samba用户:
|帐号 | 密码 |
|-都是系统用户/etc/passwdSamba-|-服务自有密码文件,通过smbpasswd-aUSERNAME命令-|
// smbpasswd命令:
-a Sys_ User //.添加系统用户为samba用户并为其设置密码
-d //禁用用户帐号
-e //启用用户帐号
-x //启用用户帐号
Samba安全级别:
Samba服务器的安全级别有三个,分别是user, server, domain
| 安全级别 | 作用 |
|-user-|-基于本地的验证-|
| server | 由另一台指定的服务器对用户身份进行认证 |
| domain | 由域控进行身份验证 |
以前的samba版本支持的安全级别有四个,分别是share, user, server, domain share是用来设置匿名访问的,但现在的版本已经不支持share了,但是还是可以实现匿名访 问的只是配置方式变了
samba配置文件:●/etc/samba/smb.conf(主配置文件)
samba三大组成
作用
[global]
全局配置,此处的设置项对整个samba服务器都有效
宿主目录共享设置,此处用来设置L inux用户的默认共享,对应用户的宿
[homes]
主目录。当用户访问服务器中与自己用户名同名的共享目录时,通过验
证后将会自动映射到该用户的宿主目录中
[printers]
打印机共享设置
1、搭建匿名用户共享服务器
//服务端
[root@zdb ~]# yum install -y samba-* //安装Samba服务
[root@zdb ~]# systemctl stop firewalld //关闭防火墙四步
[root@zdb ~]# systemctl disable firewalld
[root@zdb ~]# vim /etc/selinux/config
[root@zdb ~]# setenforce 0
[root@zdb ~]# systemctl start smb nmb //启动smb服务
[root@zdb ~]# mkdir /abc //创建共享目录
[root@zdb ~]# chmod 777 /abc //更改共享目录权限
[root@zdb ~]# useradd zh //创建用户
[root@zdb ~]# smbpasswd -a zh //给用户设置密码
New SMB password:
Retype new SMB password:
Added user zh
[root@zdb ~]# vim /etc/samba/smb.conf //配置全局配置
[root@zdb ~]# tail -8 /etc/samba/smb.conf
path = /var/lib/samba/drivers
write list = root
create mask = 0664
directory mask = 0775
[zhang]
path = /abc
browseable = yes
valid users = z
[root@zdb abc]# ls //验证客户端是否在共享目录创建文件成功
1 2
//客户端
[root@zhang ~]# yum install -y samba-client //安装Samba服务
[root@zhang ~]# systemctl stop firewalld //关闭防火墙四步
[root@zhang ~]# systemctl disable firewalld
[root@zhang ~]# vim /etc/selinux/config //配置全局配置
[root@zhang ~]# setenforce 0
setenforce: SELinux is disabled
[root@zhang ~]# smbclient -L 192.168.126.128 -U zh //查看Samba服务器共享那些文件
Enter SAMBA\zh's password:
Domain=[ZDB] OS=[Windows 6.1] Server=[Samba 4.6.2]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
IPC$ IPC IPC Service (Samba 4.6.2)
zhang Disk
zh Disk Home Directories
Domain=[ZDB] OS=[Windows 6.1] Server=[Samba 4.6.2]
Server Comment
--------- -------
Workgroup Master
--------- -------
SAMBA ZDB
[root@zhang ~]# mount -t cifs //192.168.126.128/zhang /abc -o
username='zh',password=1 //将Samba服务器的共享资源挂载到客户端本地
[root@zhang ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 17G 1.1G 16G 7% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.6M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/sr0 3.8G 3.8G 0 100% /mnt
//192.168.126.128/zhang 17G 2.7G 15G 16% /abc
[root@zhang abc]# mkdir 2 //在共享目录里面创建文件
[root@zhang abc]# ls
1 2
2、搭建用户认证共享服务器
//服务端
[root@zdb ~]# yum install -y samba-* //安装Samba服务
[root@zdb ~]# systemctl stop firewalld //关闭防火墙四步
[root@zdb ~]# systemctl disable firewalld
[root@zdb ~]# setenforce 0
[root@zdb ~]# vim /etc/selinux/config
[root@zdb ~]# useradd zh //创建用户
[root@zdb ~]# smbpasswd -a zh //给用户设置密码
New SMB password:
Retype new SMB password:
Added user zh
[root@zdb abc]# echo 'zh = share' > /etc/samba/smbusers //映射一个虚拟用户
[root@zdb abc]# vim /ect/samba/smb.conf
[root@zdb abc]# tail -8 /etc/samba/smb.conf //配置全局配置
path = /var/lib/samba/drivers
write list = root
create mask = 0664
directory mask = 0775
[zhang]
workgroup = SAMBA
security = user
username map = /etc/samba/smbusers
[root@zdb ~]# mkdir /abc
[root@zdb ~]# chmod 777 /abc
[root@zdb abc]# mkdir /opt/zhang
[root@zdb abc]# chown -R zh.zh /opt/zhang/
[root@zdb abc]# ll /opt/ //查看共享目录
总用量 0
drwxr-xr-x. 2 zh zh 6 3月 26 20:24 zhang
[root@zdb abc]# cat >> /etc/samba/smb.conf < [zhang]
> comment = zhang
> path = /opt/zhang
> guest ok =yes
> write list = share
> public = yes
> EOF
[root@zdb abc]# vim /etc/samba/smb.conf
[root@zdb abc]# tail -8 /etc/samba/smb.conf
security = user
username map = /etc/samba/smbusers
[zhang]
comment = zhang
path = /opt/zhang
guest ok = yes
write list = share
public = yes
root@zdb ~]# systemctl start smb //启动smb服务
[root@zdb ~]# systemctl restart smb //重启smb服务
[root@zdb ~]# systemctl reload smb //重启加载smb服务
[root@zdb ~]# systemctl enable smb //设置smb服务随着系统启动而启动
[root@zdb abc]# ls //验证客户端是否在共享目录创建文件成功
1 2
//客户端
[root@zhang ~]# yum install -y samba-client //安装Samba服务
[root@zhang ~]# systemctl stop firewalld //关闭防火墙四步
[root@zhang ~]# systemctl disable firewalld
[root@zhang ~]# vim /etc/selinux/config
[root@zhang ~]# setenforce 0
setenforce: SELinux is disabled
[root@zhang ~]# smbclient -L 192.168.126.128 -U zh //查看Samba服务器共享那些文件
Enter SAMBA\zh's password:
Domain=[ZDB] OS=[Windows 6.1] Server=[Samba 4.6.2]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
IPC$ IPC IPC Service (Samba 4.6.2)
zhang Disk
zh Disk Home Directories
Domain=[ZDB] OS=[Windows 6.1] Server=[Samba 4.6.2]
Server Comment
--------- -------
Workgroup Master
--------- -------
SAMBA ZDB
[root@zhang ~]# mount -t cifs //192.168.126.128/zhang /abc -o
username='zh',password=1 //将Samba服务器的共享资源挂载到客户端本地
[root@zhang ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/rhel-root 17G 1.1G 16G 7% /
devtmpfs 901M 0 901M 0% /dev
tmpfs 912M 0 912M 0% /dev/shm
tmpfs 912M 8.6M 904M 1% /run
tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 1014M 143M 872M 15% /boot
/dev/sr0 3.8G 3.8G 0 100% /mnt
//192.168.126.128/zhang 17G 2.7G 15G 16% /abc
tmpfs 183M 0 183M 0% /run/user/0
[root@zhang abc]# mkdir 2 //在共享目录里面创建文件
[root@zhang abc]# ls
1 2