samba的文件共享服务采用服务器/客户端模式,本质为服务器端的特定目录实现在客户机端特定目录的挂载,从而实现服务器端和客户机端的目录文件共享。
在以下实验中,PC1为服务器端,IP为192.168.10.10;PC2为客户机端,IP为192.168.10.20;
1、在PC1服务器端安装samba服务
2、在PC1服务器端精简samba服务的主配置文件
[root@PC1~]#cd/etc/samba/[root@PC1samba]#lslmhostssmb.conf[root@PC1samba]#cpsmb.confsmb.conf.bak[root@PC1samba]#grep-v"#"smb.conf.bak|grep-v";"|grep-v"^$">smb.conf[root@PC1samba]#catsmb.conf[global]workgroup=MYGROUPserverstring=SambaServerVersion%vlogfile=/var/log/samba/log.%mmaxlogsize=50security=userpassdbbackend=tdbsamloadprinters=yescupsoptions=raw[homes]comment=HomeDirectoriesbrowseable=nowritable=yes[printers]comment=AllPrinterspath=/var/spool/sambabrowseable=noguestok=nowritable=noprintable=yes
4、在PC1服务器端创建用户共享资源的文件目录
5、在PC1服务器端设置SELinux服务于策略,使家目录支持samba服务
[root@PC1~]#getsebool-a|grepsambasamba_create_home_dirs-->offsamba_domain_controller-->offsamba_enable_home_dirs-->offsamba_export_all_ro-->offsamba_export_all_rw-->offsamba_portmapper-->offsamba_run_unconfined-->offsamba_share_fusefs-->offsamba_share_nfs-->offsanlock_use_samba-->offuse_samba_home_dirs-->offvirt_sandbox_use_samba-->offvirt_use_samba-->off[root@PC1~]#setsebool-Psamba_enable_home_dirs=on[root@PC1~]#getsebool-a|grepsambasamba_create_home_dirs-->offsamba_domain_controller-->offsamba_enable_home_dirs-->onsamba_export_all_ro-->offsamba_export_all_rw-->offsamba_portmapper-->offsamba_run_unconfined-->offsamba_share_fusefs-->offsamba_share_nfs-->offsanlock_use_samba-->offuse_samba_home_dirs-->offvirt_sandbox_use_samba-->offvirt_use_samba-->off
6、在PC1服务器端修改samba服务主配置文件,填写共享信息
7、在PC1服务器端重启samba服务
[root@PC1~]#systemctlrestartsmb[root@PC1~]#systemctlenablesmbln-s'/usr/lib/systemd/system/smb.service''/etc/systemd/system/multi-user.target.wants/smb.service'
8、在PC1服务器端清空防火墙策略
[root@PC1~]#iptables-F[root@PC1~]#serviceiptablessaveiptables:Savingfirewallrulesto/etc/sysconfig/iptables:[OK][root@PC1~]#systemctlstatussmb##查看samba服务状态smb.service-SambaSMBDaemonLoaded:loaded(/usr/lib/systemd/system/smb.service;enabled)Active:active(running)sinceTue2020-12-1521:41:03CST;1min42sagoMainPID:4487(smbd)Status:"smbd:readytoserveconnections..."CGroup:/system.slice/smb.service├─4487/usr/sbin/smbd└─4490/usr/sbin/smbdDec1521:41:03PC1smbd[4487]:[2020/12/1521:41:03.287294,0]../lib/util/become_daemon.c:...ady)Dec1521:41:03PC1systemd[1]:StartedSambaSMBDaemon.Hint:Somelineswereellipsized,use-ltoshowinfull.
9、查看PC1服务器端IP
[root@PC1~]#ifconfig|head-n5eno16777728:flags=4163
10、在PC2客户端测试与PC1服务器主机的连通性
[root@PC2~]#ifconfig|head-n5eno16777728:flags=4163
11、在PC2客户端安装支持文件共享服务的软件包(cifs-utils)
[root@PC2~]#yuminstallcifs-utils-yLoadedplugins:langpacks,product-id,subscription-managerThissystemisnotregisteredtoRedHatSubscriptionManagement.Youcanusesubscription-managertoregister.ResolvingDependencies-->Runningtransactioncheck--->Packagecifs-utils.x86_640:6.2-6.el7willbeinstalled-->FinishedDependencyResolutionDependenciesResolved================================================================================PackageArchVersionRepositorySize================================================================================Installing:cifs-utilsx86_646.2-6.el7rhel783kTransactionSummary================================================================================Install1PackageTotaldownloadsize:83kInstalledsize:174kDownloadingpackages:RunningtransactioncheckRunningtransactiontestTransactiontestsucceededRunningtransactionInstalling:cifs-utils-6.2-6.el7.x86_641/1rhel7/productid|1.6kB00:00Verifying:cifs-utils-6.2-6.el7.x86_641/1Installed:cifs-utils.x86_640:6.2-6.el7Complete!
12、在PC2客户端,将登陆用户、密码和共享域写入到认证文件中
[root@PC2~]#pwd/root[root@PC2~]#vimauth.smbusername=linuxprobepassword=abc123456##此处的密码为在PC1服务器端使用pdbedit命令创建用户资料是设定的登陆密码domain=MYGROUP[root@PC2~]#llauth.smb-rw-r--r--.1rootroot54Dec1522:09auth.smb[root@PC2~]#chmod600auth.smb##设定为仅root可查看[root@PC2~]#llauth.smb-rw-------.1rootroot54Dec1522:09auth.smb
13、在PC2客户机端创建挂载点
[root@PC2~]#mkdir/database
14、修改开机自动挂载配置文件
[root@PC2~]#vim/etc/fstab##/etc/fstab#CreatedbyanacondaonWedDec216:46:092020##Accessiblefilesystems,byreference,aremaintainedunder'/dev/disk'#Seemanpagesfstab(5),findfs(8),mount(8)and/orblkid(8)formoreinfo#/dev/mapper/rhel-root/xfsdefaults11UUID=5cc50fd7-fef7-4902-a0f6-d583b437954d/bootxfsdefaults12/dev/mapper/rhel-swapswapswapdefaults00/dev/cdrom/media/cdromiso9660defaults00//192.168.10.10/database/databasecifscredentials=/root/auth.smb00
15、在PC1服务器端的共享点创建测试文件
[root@PC1database]#cd/home/database/[root@PC1database]#echo'iampc1'>pc1[root@PC1database]#mkdirdirpc1[root@PC1database]#lsdirpc1pc1
16、在PC2客户机端挂载共享目录
[root@PC2~]#df-hFilesystemSizeUsedAvailUse%Mountedon/dev/mapper/rhel-root18G3.0G15G17%/devtmpfs985M0985M0%/devtmpfs994M80K994M1%/dev/shmtmpfs994M8.8M986M1%/runtmpfs994M0994M0%/sys/fs/cgroup/dev/sda1497M119M379M24%/boot/dev/sr03.5G3.5G0100%/media/cdrom[root@PC2~]#mount-a[root@PC2~]#df-hFilesystemSizeUsedAvailUse%Mountedon/dev/mapper/rhel-root18G3.0G15G17%/devtmpfs985M0985M0%/devtmpfs994M80K994M1%/dev/shmtmpfs994M8.8M986M1%/runtmpfs994M0994M0%/sys/fs/cgroup/dev/sda1497M119M379M24%/boot/dev/sr03.5G3.5G0100%/media/cdrom//192.168.10.10/database18G3.0G15G17%/database
17、在PC2端进入挂载点,检测是否PC1服务器端测试文件
[root@PC2database]#cd/database/[root@PC2database]#lsdirpc1pc1[root@PC2database]#catpc1iampc1[root@PC2database]#echo'iampc2'>pc2[root@PC2database]#mkdirdirpc2[root@PC2database]#lsdirpc1dirpc2pc1pc2
18、在PC1服务器端共享目录检测客户端创建的文件
[root@PC1database]#cd/home/database/[root@PC1database]#lsdirpc1dirpc2pc1pc2[root@PC1database]#catpc2iampc2
以上实验说明了PC1服务器端的目录/home/database在客户机端/database(挂载点)实现了文件共享。