0,原理架构
就像 NFS 是架构在 RPC Server 上面一样, SAMBA 这个文件系统是架构在 NetBIOS (Network Basic Input/Output System, NetBIOS) 这个通讯协议上面所开发出来的。
组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口。
Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议。
Samba使用的 damons:
NetBIOS 机器间的沟通
-
取得对方主机的NetBIOS name 定位该主机所在:
-
利用对方给予权限存取可用资源
SAMBA 使用下面两个服务来控制上面两步骤,分别是:
- nmbd
- 这个daemon是用来管理工作组,NetBIOS name等等的解析。
- 主要利用 UDP 协议开启 port 137 138 来负责名称解析的任务。
- smbd
- 这个daemon主要用来管理SAMBA主机分享的目录,档案与打印机等等。
- 主要利用可靠的TCP协议来传输数据,开放端口为139.
所以SAMBA每次启动至少都需要有这个daemon,而当我启动了SAMBA之后,主机系统就会启动137,138 这两个UDP 及139这个TCP端口。
1,
yum -y install samba*
Installing:
samba x86_64 4.10.16-17.el7_9 updates 719 k
samba-client x86_64 4.10.16-17.el7_9 updates 646 k
samba-client-libs x86_64 4.10.16-17.el7_9 updates 5.0 M
samba-common noarch 4.10.16-17.el7_9 updates 216 k
samba-common-libs x86_64 4.10.16-17.el7_9 updates 182 k
samba-common-tools x86_64 4.10.16-17.el7_9 updates 466 k
samba-dc x86_64 4.10.16-17.el7_9 updates 88 k
samba-dc-libs x86_64 4.10.16-17.el7_9 updates 88 k
samba-devel x86_64 4.10.16-17.el7_9 updates 304 k
samba-krb5-printing x86_64 4.10.16-17.el7_9 updates 96 k
samba-libs x86_64 4.10.16-17.el7_9 updates 271 k
samba-pidl noarch 4.10.16-17.el7_9 updates 190 k
samba-python x86_64 4.10.16-17.el7_9 updates 3.0 M
samba-python-test x86_64 4.10.16-17.el7_9 updates 532 k
samba-test x86_64 4.10.16-17.el7_9 updates 1.9 M
samba-test-libs x86_64 4.10.16-17.el7_9 updates 132 k
samba-vfs-glusterfs x86_64 4.10.16-17.el7_9 updates 115 k
samba-winbind x86_64 4.10.16-17.el7_9 updates 560 k
samba-winbind-clients x86_64 4.10.16-17.el7_9 updates 149 k
samba-winbind-krb5-locator x86_64 4.10.16-17.el7_9 updates 94 k
samba-winbind-modules x86_64 4.10.16-17.el7_9 updates 123 k
2,
rpm -ql samba-client
/usr/bin/cifsdd
/usr/bin/dbwrap_tool
/usr/bin/findsmb
/usr/bin/mvxattr
/usr/bin/nmblookup
/usr/bin/oLschema2ldif
/usr/bin/regdiff
/usr/bin/regpatch
/usr/bin/regshell
/usr/bin/regtree
/usr/bin/rpcclient
/usr/bin/samba-regedit
/usr/bin/sharesec
/usr/bin/smbcacls
/usr/bin/smbclient
/usr/bin/smbcquotas
/usr/bin/smbget
/usr/bin/smbprint
/usr/bin/smbspool
/usr/bin/smbtar
/usr/bin/smbtree
rpm -ql samba-common
/etc/logrotate.d
/etc/logrotate.d/samba
/etc/samba
/etc/samba/lmhosts
/etc/samba/smb.conf
/etc/samba/smb.conf.example
/etc/sysconfig/samba
/run/samba
/run/winbindd
/var/lib/samba
/var/lib/samba/lock
/var/lib/samba/private
/var/log/samba
/var/log/samba/old
rpm -ql samba-common-tools
/usr/bin/net
/usr/bin/pdbedit (服务器功能,在管理 Samba 的用户账号密码时使用)
pdbedit -L (查看所有用户)
/usr/bin/profiles
/usr/bin/smbcontrol
/usr/bin/smbpasswd
/usr/bin/testparm
rpm -ql samba-winbind
/etc/NetworkManager/dispatcher.d/30-winbind
/usr/lib/systemd/system/winbind.service
/usr/sbin/winbindd
/var/lib/samba/winbindd_privileged
rpm -ql samba
/etc/openldap/schema
/etc/openldap/schema/samba.schema
/etc/pam.d/samba
/usr/bin/smbstatus (状态管理命令,查看全部信息)
/usr/lib/systemd/system/nmb.service
/usr/lib/systemd/system/smb.service
/usr/sbin/eventlogadm
/usr/sbin/nmbd
/usr/sbin/smbd
/var/lib/samba/drivers
/var/spool/samba
ls /etc/samba
lmho