资讯详情

如何在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]# sstemctl 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用户。

[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

标签: nmb悬臂梁传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台