一、简介
Samba是一种实现SMB(Server Message Block)协议的软件,它允许 Linux 和 Unix 系统与 Windows 系统进行网络文件和打印服务的共享。
主要进程:
samba服务的进程由smbd和nmbd组成;
smbd进程:主要负责管理服务器上的共享目录、打印机、提供登录认证、创建对话进程和SMB资源共享等功能。端口:139和445。
nmbd进程:主要负责提供NetBIOS的域名解析和浏览共享资源的服务。端口:137和138。
工作原理:
1、由Samba客户端向Samba服务器端发送包含使用的协议版本等信息的数据请求包,当服务器收到数据请求包后对数据包中的内容进行确认,如果Samba服务器没有响应客户端的请求则本次会话请求连接失败。
2、当数据请求包的信息被Samba服务器确认后,服务器就向客户端发送建议使用的协议版本、端口等相关信息。
3、客户端在收到来自服务器端的信息后,开始根据服务器的要求确认自身的信息,然后向服务器发送认证信息并等待服务器的响应,如果服务器端响应客户端的请求,则本次会话请求连接成功,否则,则本次会话请求连接失败。
4、客户端与服务器端成功建立会话连接后,客户端就可以通过相应的命令访问所需的资源。
特点:
- 跨平台文件共享:Samba 使得 Linux 和 Windows 系统能够无缝地共享文件和打印机资源。
- SMB 协议支持:Samba 实现了 SMB 协议,这是 Windows 网络环境中用于文件和打印服务共享的协议。
- 配置灵活性:通过编辑 配置文件,可以灵活地设置共享目录、用户权限、安全级别等。
- 用户验证:Samba 支持多种安全级别,包括 share、user、server、domain,以及集成 Windows Active Directory 的能力。
- 服务组成:Samba 服务主要由两个守护进程组成: 负责文件和打印服务请求, 负责 NetBIOS 名称服务和网络浏览功能。
- 日志记录:Samba 可以将访问和操作日志记录到指定的日志文件中,便于管理和监控。
- 网络浏览:Samba 提供网络浏览服务,使得 Windows 客户端能够在网络上发现和访问 Samba 服务器的共享资源。
- 打印机共享:Samba 不仅可以共享文件,还可以共享打印机,允许网络上的计算机使用共享的打印机资源。
- 易于安装和使用:Samba 通常包含在大多数 Linux 发行版中,易于安装和配置,提供了命令行工具和图形界面(如 SWAT)来管理 Samba 服务。
- 社区支持:作为一个开源项目,Samba 拥有活跃的社区,用户可以从社区获得帮助和支持。
二、Samba服务器部署
1、常用命令
- smbd:SMB服务器,为客户端提供文件和打印服务
- nmbd:NetBIOS名称服务器,可以提供浏览支持
- smbclient:SMB客户端程序,用于从Linux或其他操作系统上访问SMB服务器上的资源
- smbmount:挂载SMB文件系统的工具
- smbumount:卸载SMB文件系统的工具
- smbpasswd:添加、删除及管理SMB账户口令
2、安装samba服务器所需的软件包
3、配置文件,模板配置文件
- # Security-Enhanced Linux (SELinux) Notes ---selinux参数配置
- # setsebool -P samba_enable_home_dirs on ---共享用户家目录时,需要设置的bool值
- # chcon -t samba_share_t /path/to/directory ---共享自定义目录时,需要更改目录的context值当文件系统重打标签时,通过chcon进行的更改将丢失
- # setsebool -P samba_export_all_ro on ---以只读权限共享目录时,需要设置的bool值
- # setsebool -P samba_export_all_rw on ---以读写权限共享目录时,需要设置的bool值
4、共享目录测试
共享设置部分有一系列的参数设置,常见的如下:
- comment = :定义共享描述。
- path = :定义具体的共享目录(值为共享目录的绝对路径)。
- browseable = :定义是否可以浏览,yes为可以浏览,no为不能浏览,默认为yes。
- read only = :定义共享权限是否只读,yes表示只读,默认值为只读。
- writable = :定义共享权限是否可写,yes表示可写,no表示不可写,默认为no。
- write list = :定义具体读写共享权限的用户列表,不在列表的用户默认只有只读权限,参数值可以设置为用户名和组名;设置用户名的格式为:username1,username2(中间用逗号隔开),设置组名的格式:@groupname1,@groupname2(中间用逗号隔开)。
- guest ok = :定义是否允许匿名,yes表示允许匿名,no表示不允许匿名。
- valid users = :定义可以访问共享的samba用户列表,格式username1,username2。不允许列表以外的samba用户访问共享,若列表为空白,则表示所有的samba用户均可访问共享
- public = : 定义是否为公共共享,yes为公共共享 no表示非公共共享。设置目录共享时,一定要事先创建需要共享的目录,且留意共享目录的文件系统权限和共享权限的一致性。
三、实验1
将samba服务器端目录/smbshare共享,共享名为myshare,共享可以浏览,允许用户rose和用户marry访问,用户rose具有只读权限,marry具有读写权限 (rose和marry系统存在的用户)。
服务器:
1、创建目录
2、更改配置文件
3、新建rose和marry用户
为什么要将用户设置为不可登录状态?
因为将系统用户添加为samba用户后,防止系统用户直接登录系统或者通过ssh登录系统。
4、设置samba用户
命令:smbpasswd
-a:添加用户
-x:删除用户
-e:启用用户
-d:禁用用户
5、设置权限,保证samba用户的访问权限和服务设置的权限一致
6、启动服务
客户端:
1、匿名用户访问samba服务器共享资源列表--smbclient
smbclient -L [samba服务器的hostname或者IP]
smbclient -L 172.16.30.20 ----匿名访问,直接回车,不需要输入密码
2、samba用户浏览samba服务器共享资源列表
smbclient -L [samba服务器的hostname或者IP] -U 【samba用户名】
smbclient -L 172.16.30.20 -U rose
3、匿名用户访问samba服务器的共享资源
smbclient //[samba服务器的hostname或者IP]/[共享名] ---------匿名用户不需要密码
smbclient //172.16.30.20/myshare
4、samba用户浏览samba服务器共享资源
smbclient //[samba服务器的hostname或者IP]/[共享名] -U [samba用户]
smbclient //172.16.30.20/myshare -U rose
5、使用mount命令讲samba服务器共享资源挂载到本地目录下
mkdir /smbmount
交互式挂载---等待你输入密码
mount -t cifs -o username=rose //172.16.30.20/myshare /smbmount
----输入samba用户rose的samba密码
6、非交互式挂载---直接挂载上
mount -t cifs -o username=rose,password=rose,sec=ntlmssp //172.16.30.20/myshare /smbmount
若想下次启动生效
vim /etc/fstab
//172.16.30.20/myshare /smbmount cifs username=rose,password=rose,sec=ntlmssp 0 0
7、多用户挂载,使用multiuser选项
vim /etc/fstab
//172.16.30.20/myshare /smbmount cifs multiuser,username=rose,password=rose,sec=ntlmssp 0 0
普通用户galaxy使用cifscreds命令向samba服务器提交samba用户marry的凭证,此时普通用户galaxy临时具有samba用户marry的权限,实现其对myshare共享具有marry的读写权限
8、windows操作系统
\172.16.30.20 回车
输入samba用户和密码
默认情况下,普通用户无法拥有samba用户的权限去访问共享目录的。
multiuser这个挂载选项的作用是:可以让普通用户拥有samba用户的权限来访问共享目录。
需要通过cifscreds 172.16.30.20 -u marry 临时获得samba用户marry的权限来访问共享目录。
四、实验2
samba服务:
在主机Server30上配置Samba服务。
您的Samba服务器必须是STAFF工作组的一个成员。
共享/common目录,共享名为common。
只有example.com域内的客户端可以访问common共享。
common共享必须是可以浏览的。
用户marry必须能够读取共享中的内容,如果需要的话,验证密码是:redhat.
1、安装samba服务
2、修改配置文件
3、创建一个marry用户,不允许登录到系统中,并设置samba密码为redhat
4、设置权限,保证marry用户的访问权限与服务设置的一样
5、启动服务
6、使用客服端访问资源,可以访问到公共资源
五、实验3
多用户Samba挂载:
在主机Server30上通过Samba共享目录/storage。
共享名为share。
共享目录share必须可以浏览。
用户jim能以读的方式访问此共享,访问密码为redhat。
用户bob能以读写的方式访问此共享,访问密码是redhat。
此共享永久挂载在desktop30上的/mnt/smb目录,并使用用户jim进行认证,任何用户可临时通过bob来获得读写权限。
1、安装samba服务
2、修改配置文件
3、创建用户并设置他们的权限
4、设置密码
5、挂载,创建挂载的目录,使用df -Th 查看
6、换到普通用户使用bob用户来读写
完成。
到此这篇samba共享服务端口(samba服务端口号)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-yjs/12350.html