概述
本教程操作环境:linux5.9.8系统、Dell G3电脑。
一、Samba 概述
1. samba 简介
Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成。
samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享。
Samba的服务组成
1)SMB是samba 的核心启动服务,主要负责建立Linux samba服务器与samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口。
2)NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口。
安装samba服务
yum -y install samba
登录后复制
查看安装状况
rpm -qa | grep samba
登录后复制
2. samba 监听端口
TCP | UDP |
---|---|
139 | 445 | 137 | 138 |
- tcp 端口相对应的服务是 smbd 服务,其作用是提供对服务器中文件、打印资源的共享访问
- udp 端口相对应的服务是 nmbd 服务,其作用是提供基于 NetBIOS 主机名称的解析
3. samba 进程
进程 | 对应 |
---|---|
nmbd | 对应 netbios |
smbd | 对应 cifs 协议 |
winbindd + ldap | 对应 Windows AD 活动目录 |
4. samba 用户
帐号 | 密码 |
---|---|
都是系统用户 /etc/passwd | Samba 服务自有密码文件通过 smbpasswd -a USERNAME 命令设置 |
//smbpasswd 命令:
-a Sys_User //添加系统用户为 samba 用户并为其设置密码
-d //禁用用户帐号
-e //启用用户帐号
-x //删除用户帐号
[root@localhost ~]# yum -y install samba-*
[root@localhost ~]# useradd tom
[root@localhost ~]# smbpasswd -a tom
New SMB password:
Retype new SMB password:
Added user tom.
登录后复制
5. samba 安全级别
Samba 服务器的安全级别有三个,分别是 user,server,domain
安全级别 | 作用 |
---|---|
user | 基于本地的验证 |
server | 由另一台指定的服务器对用户身份进行认证 |
domain | 由域控进行身份验证 |
- 以前的 samba 版本支持的安全级别有四个,分别是 share,user,server,domain
- share 是用来设置匿名访问的,但现在的版本已经不支持 share 了,但是还是可以实现匿名访问的只是配置方式变了
6. samba 配置文件
- /etc/samba/smb.conf(主配置文件)
samba 三大组成 | 作用 |
---|---|
[global] | 全局配置,此处的设置项对整个 samba 服务器都有效 |
[homes] | 宿主目录共享设置,此处用来设置 Linux 用户的默认共享,对应用户的宿主目录。 当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将会自动映射到该用户的宿主目录中 |
[printers] | 打印机共享设置 |
7. 常用配置文件参数
参数 | 作用 |
---|---|
workgroup | 表示设置工作组名称 |
server string | 表示描述 samba 服务器 |
security | 表示设置安全级别,其值可为 share、user、server、domain |
passdb backend | 表示设置共享帐户文件的类型,其值可为 tdbsam(tdb数据库文件)、ldapsam(LDAP目录认证)、smbpasswd(兼容旧版本 samba 密码文件) |
comment | 表示设置对应共享目录的注释,说明信息,即文件共享名 |
browseable | 表示设置共享是否可见 |
writable | 表示设置目录是否可写 |
path | 表示共享目录的路径 |
guest ok | 表示设置是否所有人均可访问共享目录 |
public | 表示设置是否允许匿名用户访问 |
write list | 表示设置允许写的用户和组,组要用 @ 表示,例如 write list = root,@root |
valid users | 设置可以访问的用户和组,例如 valid users = root,@root |
hosts deny | 设置拒绝哪台主机访问,例如 hosts deny = 192.168.10.100 |
hosts allow | 设置允许哪台主机访问,例如 hosts allow = 192.168.10.200 |
printable | 表示设置是否为打印机 |
#测试配置文件是否有语法错误,以及显示最终生效的配置。使用 testparm 命令
[root@localhost ~]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Loaded services file OK.
Server role: ROLE_STANDALONE
......
登录后复制
二、搭建匿名用户共享服务器(Linux - Linux)
1. 环境准备
IP | 主机 | 系统 |
---|---|---|
192.168.10.20 | server | CentOS7 |
192.168.10.30 | client | CentOS7 |
systemctl stop firewalld && systemctl disable firewalld
setenforce 0
yum -y install ntp && ntpdate ntp.aliyun.com
//server
hostnamectl set-hostname server
su
//client
hostnamectl set-hostname client
su
登录后复制
2. 服务端
yum -y install samba-* &> /dev/null
systemctl start smb && systemctl enable smb
#添加全局配置
vim /etc/samba/smb.conf
......
[global]
workgroup = SAMBA
security = user
map to guest = Bad User
......
#创建共享文件夹
mkdir -p /opt/yc
chmod 777 /opt/yc/
ll /opt/
#配置共享
cat >> /etc/samba/smb.conf << EOF
[yc]
comment = yc
path = /opt/yc
browseable = yes
guest ok = yes
writable = yes
public = yes
EOF
#测试配置文件是否有误
testparm
#重启服务
systemctl restart smb
登录后复制
3. 客户端
yum -y install samba-* &> /dev/null
systemctl start smb && systemctl enable smb
#客户端验证
smbclient -L 192.168.10.20 -U 'Bad User' #123456
mkdir -p /opt/smb
mount -t cifs //192.168.10.20/yc /opt/smb/ -o username='Bad User'
df -h
#在客户端上创建共享目录,文件
cd /opt/smb/ && touch test && mkdir yanchuang
ls
登录后复制
4. 服务端上验证
[root@server ~]#cd /opt/yc
[root@server /opt/yc]#ls
test yanchuang
登录后复制
三、Windows 访问共享文件
同网段 windows 虚拟机访问
不同网段 windows 虚拟机访问
- 需要认证
相关推荐:《Linux视频教程》
以上就是linux的samba是什么的详细内容,更多请关注靠谱客其它相关文章!
最后
以上就是哭泣豌豆为你收集整理的linux的samba是什么的全部内容,希望文章能够帮你解决linux的samba是什么所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复