如何在RHEL,Rcoky Linux和AlmaLinux上设置Samba服务器

文件共享是服务器管理的一个必要组成。它允许在网络上共享资源,用户需要执行它们的任务需要这些资源。其中一个广泛使用的文件共享软件是Samba。

Samba(流行的SMB(服务器消息块)协议的重新实现)是一个稳定和自由的应用程序,它允许在网络上文件和打印服务的共享。这个软件被安装中心Linux服务器上,从Linux和Windows系统可以访问在这个服务器上的共享软件。

在这里,我们将带你在基于RHEL发行版上(Rocky Linux和AlmaLinux)安装Samba服务器。

第一步:在Linux中安装Samba

首先,安装包括客户端包的Samba核心包:

[blctrl@localhost ~]$ cat /etc/redhat-release
AlmaLinux release 8.6 (Sky Tiger)
[blctrl@localhost ~]$ sudo install samba samba-common samba-client -y
[sudo] password for blctrl:
install: invalid option -- 'y'
Try 'install --help' for more information.
[blctrl@localhost ~]$ sudo dnf install samba samba-common samba-client -y
Last metadata expiration check: 0:31:05 ago on Fri 08 Jul 2022 08:21:23 AM CST.
Package samba-common-4.15.5-5.el8.noarch is already installed.
Dependencies resolved.
====================================================================================================================================
 Package                               Architecture              Version                            Repository                 Size
====================================================================================================================================
Installing:
 samba                                 x86_64                    4.15.5-8.el8_6                     baseos                    867 k
 samba-client                          x86_64                    4.15.5-8.el8_6                     baseos                    714 k
...
Complete!

以上命令安装指定的软件包以及如输出上显示的有依赖关系的包。在安装结束后,你将获取一个所有已经安装包的概要。

第二步:创建和配置Samba共享

一旦已经安装了所有samba包,下一步是配置samba共享。一个samba共享只是一个在网络中在客户系统之间将被共享的目录。我们在这里创建一个/samba_share的samba共享:

[blctrl@localhost ~]$ sudo mkdir /samba_share
[sudo] password for blctrl:
[blctrl@localhost ~]$ ls /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  samba_share  sbin  srv  sys  tmp  usr  var

接着,我们将根据以下分配权限和所有权。

[blctrl@localhost ~]$ sudo chmod -R 755 /samba_share
[blctrl@localhost ~]$ sudo chown -R nobody:nobody /samba_share
[blctrl@localhost ~]$ sudo chcon -t samba_share_t /samba_share

以上chcon命令解释:

如果你希望将samba目录共享给其他用户,你需要设置chcon -t samba_share_t /directory

接着,smb.conf配置文件是Samba的主配置文件,我们在这个配置文件中做一些配置。但在我们做这件事前,我们通告用不同文件扩展名重命名来备份这个文件。

[blctrl@localhost ~]$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

接着,我们创建一个新的配置文件。

[root@localhost blctrl]# vim /etc/samba/smb.conf

通过在配置文件中添加以下展示的行,我们将定义谁能够访问这个samba共享的策略。

[root@localhost blctrl]# cat /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = almaLinux-8
security = user
map to guest = bad user
dns proxy = no
ntlm auth = true


[Public]
path = /samba_share
browsable = yes
writable = yes
guest ok = yes
read only = no

保存并且编辑这个配置文件。

验证所作的配置,运行命令:

[root@localhost blctrl]# testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed

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 = ALMALINUX-8
        ntlm auth = ntlmv1-permitted
        security = USER
        server string = Samba Server %v
        idmap config * : backend = tdb


[Public]
        guest ok = Yes
        path = /samba_share
        read only = No

接着,按以下启动和使能Samba守护进程。

[root@localhost blctrl]# systemctl start smb
[root@localhost blctrl]# systemctl enable smb
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
[root@localhost blctrl]# systemctl start nmb
[root@localhost blctrl]# systemctl enable nmb
Created symlink /etc/systemd/system/multi-user.target.wants/nmb.service → /usr/lib/systemd/system/nmb.service.

[root@localhost blctrl]# systemctl status smb
● smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2022-07-08 09:21:19 CST; 59s ago
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 108460 (smbd)
   Status: "smbd: ready to serve connections..."
    Tasks: 4 (limit: 23504)
   Memory: 12.5M
   CGroup: /system.slice/smb.service
           ├─108460 /usr/sbin/smbd --foreground --no-process-group
           ├─108462 /usr/sbin/smbd --foreground --no-process-group
           ├─108463 /usr/sbin/smbd --foreground --no-process-group
           └─108464 /usr/libexec/samba/samba-bgqd --ready-signal-fd=50 --parent-watch-fd=13 --debuglevel=0 -F

[root@localhost blctrl]# systemctl status nmb
● nmb.service - Samba NMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/nmb.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2022-07-08 09:21:33 CST; 55s ago
     Docs: man:nmbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 108493 (nmbd)
   Status: "nmbd: ready to serve connections..."
    Tasks: 1 (limit: 23504)
   Memory: 2.8M
   CGroup: /system.slice/nmb.service
           └─108493 /usr/sbin/nmbd --foreground --no-process-group

关闭服务器的防火墙:

[root@localhost /]# systemctl stop firewalld
[root@localhost /]# setenforce 0

第三步:从Windows访问Samba共享

设置Windows 10能够连接Samba服务器:

[控制面板] 中选择如红色框中的卸载程序:

 [程序和功能]中选择红色框中的启用或关闭Windows功能:

 勾选下图中SMB 1.0/CIFS文件共享支持:

到此,我们已经安装了samba并且配置了我们的samba共享。我们现在准备远程访问它。要在Widows客户端做这件事,按Windows图标+R来启动运行对话框。

在提供的文本字段,输入samba服务器的IP地址:\\server_ip

 会弹出一个如下的窗口,这个目录指向我们在/samba_share/目录中的samba共享:

 测试:当前共享目录中没有内容,我们在服务器的/samba_share下创建三个文件,然后在Windows中共享目录下查看内容:

1、在服务器的共享目录下创建5个txt文件:

[root@localhost /]# touch /samba_share/{1..5}.txt
[root@localhost /]# ls /samba_share/
1.txt  2.txt  3.txt  4.txt  5.txt

2、在Windows中查看,也出现了5个名称完全一致的文件:

 

 我们成功地掌握了访问samba共享。但,我们的目录对任何人都可以访问,并且所有人都能随意编辑和删除这些文件,如果你打算放置敏感文件,尤其不推荐这种方式。

第四步:安全的Samba共享目录

首先,我们将创建一个新的samba用户。

[root@localhost /]# useradd smbuser

接着,我们为这个samba用户配置一个密码。这是在验证过程中将使用的密码。

[root@localhost /]# smbpasswd -a smbuser
New SMB password:
Retype new SMB password:
Added user smbuser.

接着,我们将为我们安全的samb共享创建一个新组并且添加以上创建的samba用户到这个组。 

[root@localhost /]# groupadd  smb_group
[root@localhost /]# usermod -g smb_group smbuser

然后创建另一个将安全地受访问地samba共享。在这种情况下,我们用以下命令创建:

[root@localhost /]# mkdir /samba_private

然后为samba共享配置文件权限:

[root@localhost /]# chmod -R 770 /samba_private
[root@localhost /]# chcon -t samba_share_t /samba_private
[root@localhost /]# chwon -R root:smb_group /samba_private

再一次编辑主配置文件smb.conf:

[root@localhost /]# vim /etc/samba/smb.conf

在以上文件中添加以下几行来定义安全地samba共享:

[Private]
path = /samba_private
valid users = @smb_group
guest ok = no
writable = no
browsable = yes

保存更改并且退出。

最后如下所示,重启所有samba:

[root@localhost /]# systemctl restart smb
[root@localhost /]# systemctl restart nmb

在这次访问服务器时,在运行对话框中输入以下内容:

你需要在弹出的窗口中,输入验证用的用户名和密码,然后按确定后,弹出安全的Samba共享目录:

 测试:在服务器的/samb_private目录中,新建5个文件:

[root@localhost /]# touch /samba_private/{6..9}.txt
[root@localhost /]# ls /samba_private/
6.txt  7.txt  8.txt  9.txt

在Windows中查看此时的共享目录情况:

第五步:从Linux客户端访问Samba共享

要从Linux客户端访问Samba共享,首先确保安装了Samba客户端包:

[blctrl@areadetector ~]$ cat /etc/redhat-release
Rocky Linux release 8.6 (Green Obsidian)
[blctrl@areadetector ~]$ sudo dnf install samba-client
Last metadata expiration check: 1:36:46 ago on Fri 08 Jul 2022 09:23:31 AM CST.
Package samba-client-4.15.5-8.el8_6.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

要按如下使用smbclient命令:

1、访问服务器上Public共享目录:

提示输入密码时,直接回车就可以了。

[blctrl@areadetector ~]$ smbclient '\\192.168.50.128\public'
Password for [SAMBA\blctrl]:
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Fri Jul  8 10:31:54 2022
  ..                                  D        0  Fri Jul  8 10:01:32 2022
  1.txt                               N        0  Fri Jul  8 10:31:54 2022
  2.txt                               N        0  Fri Jul  8 10:31:54 2022
  3.txt                               N        0  Fri Jul  8 10:31:54 2022
  4.txt                               N        0  Fri Jul  8 10:31:54 2022
  5.txt                               N        0  Fri Jul  8 10:31:54 2022

                36723180 blocks of size 1024. 29600036 blocks available
smb: \> exit
[blctrl@areadetector ~]$

2、访问服务器上Private共享目录:

需要用-U指定验证用的用户名,并且输入相应的密码。

[blctrl@areadetector ~]$ smbclient '\\192.168.50.128\private' -U smbuser
Password for [SAMBA\smbuser]:
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Fri Jul  8 10:52:56 2022
  ..                                  D        0  Fri Jul  8 10:01:32 2022
  6.txt                               N        0  Fri Jul  8 10:52:56 2022
  7.txt                               N        0  Fri Jul  8 10:52:56 2022
  8.txt                               N        0  Fri Jul  8 10:52:56 2022
  9.txt                               N        0  Fri Jul  8 10:52:56 2022

                36723180 blocks of size 1024. 29600036 blocks available
smb: \> exit

第六步:在Linux上挂载samba共享

1、mount命令手动挂载

首先,需要在需要挂载samba共享的Linux机器上安装cifs文件系统:

[root@areadetector blctrl]# dnf install cifs-utils
Last metadata expiration check: 1:46:20 ago on Fri 08 Jul 2022 09:23:31 AM CST.
Dependencies resolved.
=================================================================================
 Package             Architecture    Version               Repository       Size
=================================================================================
Installing:
 cifs-utils          x86_64          6.8-3.el8             baseos           95 k
...
Installed:
  cifs-utils-6.8-3.el8.x86_64

Complete!

创建两个挂载点:

[root@areadetector blctrl]# mkdir /mnt/smb_public
[root@areadetector blctrl]# mkdir /mnt/smb_private

用mount命令进行挂载:

[root@areadetector blctrl]# mount -t cifs  -l //192.168.50.128/public /mnt/smb_public
Password for blctrl@//192.168.50.128/public:
[root@areadetector blctrl]# ls /mnt/smb_public
1.txt  2.txt  3.txt  4.txt  5.txt


[root@areadetector blctrl]# mount -t cifs -o username=smbuser,password=abc123 -l //192.168.50.128/private /mnt/smb_private
[root@areadetector blctrl]# ls /mnt/smb_private
6.txt  7.txt  8.txt  9.txt

2、自动挂载

编辑/etc/fstab文件,在文件末尾添加以下两行分别挂载两个Samba共享:

//192.168.50.128/public /mnt/smb_public  cifs    defaults      0       0
//192.168.50.128/private /mnt/smb_private cifs username=smbuser,password=abc123 0 0

重新进行挂载:

[root@areadetector blctrl]# mount -a

验证是否成功挂载了Samba的两个共享路径:

[root@areadetector blctrl]# ls /mnt/smb_public
1.txt  2.txt  3.txt  4.txt  5.txt
[root@areadetector blctrl]# ls /mnt/smb_private/
6.txt  7.txt  8.txt  9.txt
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值