如何在CentOS 8上安装Samba服务器

如何在CentOS 8上安装Samba服务器

Samba是一款免费的开源软件,可用于在Linux和Windows系统之间共享文件,文件夹和打印机,还用于身份验证和授权,名称解析和服务声明,可以在不同的操作系统上运行包括Linux,Unix,OpenVMS等。

在本教程中,我们将学习如何在SentOS 8上安装Samba并将其配置为独立的共享服务器。

先决条件

  • 运行CentOS的服务器8。
  • 在您的服务器上配置了root密码。

安装Samba服务器

默认情况下,Samba软件包在CentOS默认存储库中可用。您可以使用以下命令安装它:

dnf install samba samba-common samba-client -y

安装Samba之后,启动SMB服务,并使用以下命令在系统重新引导后使其启动:

systemctl start smb systemctl enable smb

现在,您可以使用以下命令来验证Samba服务:

systemctl status smb

您应该获得以下输出:

? smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-03-02 23:03:30 EST; 8s ago
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 2072 (smbd)
   Status: "smbd: ready to serve connections..."
    Tasks: 4 (limit: 25028)
   Memory: 33.8M
   CGroup: /system.slice/smb.service
           ??2072 /usr/sbin/smbd --foreground --no-process-group
           ??2074 /usr/sbin/smbd --foreground --no-process-group
           ??2075 /usr/sbin/smbd --foreground --no-process-group
           ??2076 /usr/sbin/smbd --foreground --no-process-group

与Samba创建公共共享

在本节中,我们将与Samba创建一个公共共享,这样每个人都可以使用密码访问公共共享目录。

创建一个公共共享目录

首先,创建一个名为public的共享文件夹,并在public目录中创建两个文件:

mkdir -p /samba/share/public touch /samba/share/public/file1.txt touch /samba/share/public/file2.txt

接下来,使用以下命令分配必要的权限和所有权:

chmod -R 0755 /samba/share/ chmod -R 0755 /samba/share/public chown -R nobody:nobody /samba/share chown -R nobody:nobody /samba/share/public

配置Samba

接下来,您将需要配置Samba以共享公共目录。

首先,使用以下命令创建/etc/samba/smb.conf文件的备份副本:

mv /etc/samba/smb.conf /etc/samba/smb.bak

接下来,创建一个新的Samba配置文件:

nano /etc/samba/smb.conf

添加以下行:

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = samba-server
security = user
map to guest = bad user
dns proxy = no

[Public]
path = /samba/share/public
browsable =yes
writable = yes
guest ok = yes
read only = no

保存,关闭文件,然后重新启动Samba服务以应用更改:

systemctl restart smb

接下来,使用以下命令测试Samba配置:

testparm

您应该看到以下输出:

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
	dns proxy = No
	map to guest = Bad User
	netbios name = SAMBA-SERVER
	security = USER
	server string = Samba Server %v
	idmap config * : backend = tdb


[Public]
	guest ok = Yes
	path = /samba/share/public
	read only = No

配置SELinux和防火墙

接下来,使用以下命令在共享目录上设置正确的SELinux布尔值和安全上下文值:

setsebool -P samba_export_all_ro=1 samba_export_all_rw=1 semanage fcontext –at samba_share_t "/samba/share/public(/.*)?" restorecon /samba/share/public

接下来,使用以下命令通过firewalld提供所有Samba服务:

firewall-cmd --add-service=samba --zone=public --permanent firewall-cmd --reload

从Ubuntu Gnome访问Samba共享

要访问Samba共享,请转到远程计算机,打开Gnome文件管理器,然后单击 连接 伺服器 如下图所示:

提供您的Samba服务器IP地址,然后点击 连接 连接成功后,您将在以下屏幕中看到Samba共享:

Samba在文件资源管理器中的共享

现在,点击 公开的 目录,您应该在以下屏幕中看到文件:

文件清单

从Ubuntu命令行访问Samba共享

您也可以从命令行访问Samba共享。

首先,使用以下命令列出所有可用的Samba共享:

smbclient -L //45.58.38.51

您应该看到以下输出:

Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

	Sharename       Type      Comment
	---------       ----      -------
	Public          Disk      
	IPC$            IPC       IPC Service (Samba Server 4.10.4)
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------

您也可以使用cifs协议挂载Samba共享。为此,请使用以下命令安装cifs-utils软件包:

apt-get install cifs-utils -y

接下来,使用以下命令将Samba共享安装到/ mnt目录:

mount -t cifs //45.58.38.51/public /mnt/

系统将要求您提供密码,如下所示:

Password for [email protected]//45.58.38.51/public: 

只需按 进入 无需输入任何密码即可安装Samba共享:

您现在可以在/ mnt目录中访问Samba共享:

ls /mnt/

您应该看到以下输出:

file1.txt  file2.txt

与Samba创建私人共享

在本节中,我们将使用Samba创建一个私有共享,这样只有经过身份验证的用户才能访问私有共享目录。

创建用户和组

首先,使用以下命令创建一个名为private的组:

groupadd private

接下来,创建一个名为privateuser的新用户并将其添加到私有组:

useradd -g private privateuser

接下来,使用以下命令为用户设置密码:

smbpasswd -a privateuser

输出:

New SMB password:
Retype new SMB password:
Added user privateuser.

创建一个私人共享目录

接下来,创建一个名为private的共享文件夹,并在private目录中创建两个文件:

mkdir -p /samba/share/private touch /samba/share/private/private1.txt touch /samba/share/private/private2.txt

接下来,使用以下命令分配适当的权限和所有权:

chmod -R 0770 /samba/share/private chown -R root:private /samba/share/private

接下来,使用以下命令为私有目录配置SELinux上下文:

semanage fcontext –at samba_share_t "/samba/share/private(/.*)?" restorecon /samba/share/private

配置Samba

接下来,打开Samba配置文件并定义私有共享:

nano /etc/samba/smb.conf

在文件末尾添加以下行:

[Private]
path = /samba/share/private
valid users = @private     
guest ok = no
writable = yes
browsable = yes

保存并关闭文件,然后重新启动Samba服务以应用更改:

systemctl restart smb

接下来,使用以下命令检查Samba配置:

testparm

您应该看到以下输出:

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
	dns proxy = No
	map to guest = Bad User
	netbios name = SAMBA-SERVER
	security = USER
	server string = Samba Server %v
	idmap config * : backend = tdb


[Public]
	guest ok = Yes
	path = /samba/share/public
	read only = No


[Private]
	path = /samba/share/private
	read only = No
	valid users = @private

从Ubuntu命令行访问Samba共享

首先,使用以下命令访问可用共享:

smbclient -L //45.58.38.51

您应该看到以下输出:

Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

	Sharename       Type      Comment
	---------       ----      -------
	Public          Disk      
	Private         Disk      
	IPC$            IPC       IPC Service (Samba Server 4.10.4)
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------

接下来,连接到Samba服务器并使用以下命令列出可用的共享:

smbclient //45.58.38.51/private -U privateuser

系统将要求您提供密码,如下所示:

Enter privateuser's password: 

输入密码,然后按Enter键以访问Samba shell,如下所示:

Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]
smb: >

现在,使用以下命令列出可用的共享:

smb: > ls

您应该看到以下输出:

  
.                                   D        0  Tue Mar  3 10:03:22 2020
  ..                                  D        0  Tue Mar  3 10:01:56 2020
  private1.txt                        N        0  Tue Mar  3 10:03:17 2020
  private2.txt                        N        0  Tue Mar  3 10:03:22 2020

		51194 blocks of size 2097152. 49358 blocks available

现在,使用以下命令从Samba shell退出:

smb: >exit

您也可以将Samba共享安装在/ opt目录中:

mount -t cifs -o user=privateuser //45.58.38.51/private /opt

系统将要求您提供密码,如下所示:

Password for [email protected]//45.58.38.51/private:  *********

提供密码,然后按Enter键挂载Samba共享。

您现在可以在/ opt目录中检查您的Samba共享,如下所示:

ls /opt/

输出:

private1.txt  private2.txt

从Ubuntu Gnome访问Samba共享

要访问Samba共享,请转到远程计算机,打开Gnome文件管理器,然后单击 连接 伺服器 如下图所示:

访问Gnome中的私人共享

提供您的Samba服务器IP地址,然后点击 连接 连接成功后,您将在以下屏幕中看到Samba共享:

公开和私人分享

现在,点击 私人的 目录,提供用户名和密码,然后单击“连接”按钮。您应该在以下屏幕中看到文件:

使用用户名和密码登录

档案

恭喜,您已经在CentOS 8上成功安装和配置了Samba服务器。

Sidebar