Xshell远程连接Linux之Centos 7系统
目录:
- 先决条件
- 在CentOS上安装Samba
- 配置防火墙
- 创建Samba用户和目录结构
- 创建Samba用户
- 配置Samba共享
- 从Linux连接到Samba共享
- 使用smbclient客户端
- 挂载Samba共享
- 使用GUI
- 结论
Samba是SMB / CIFS网络文件共享协议的免费开放源代码重新实现,允许最终用户访问文件,打印机和其他共享资源。
在本教程中,我们将展示如何在CentOS 7上安装Samba并将其配置为独立服务器,以通过网络在不同操作系统之间提供文件共享。
我们将创建以下Samba共享和用户。
使用者:
- sadmin-具有对所有共享的读写访问权限的管理用户。 josh-具有自己的私有文件共享的普通用户。
分享:
- 用户 -所有用户都可以通过读取/写入权限访问此共享。 josh-只有用户josh和sadmin可以使用读/写权限访问此共享。
您可以从网络上的所有设备访问文件共享。 在本教程的后面,我们还将提供有关如何从Linux,Windows和macOS客户端连接到Samba服务器的详细说明。
先决条件
在开始之前,请确保您以具有sudo特权的用户身份登录到CentOS 7系统。
在CentOS上安装Samba
可从标准CentOS资料库中获得Samba。 要将其安装在您的CentOS系统上,请运行以下命令:
sudo yum install samba samba-client
安装完成后,启动Samba服务并启用它们以在系统启动时自动启动:
sudo systemctl start smb.service
sudo systemctl start nmb.service
sudo systemctl enable smb.service
sudo systemctl enable nmb.service
smbd
服务提供文件共享和打印服务,并侦听TCP端口139和445。nmbd服务向客户端提供基于IP命名服务的NetBIOS,并侦听UDP端口137。
配置防火墙
现在已经在CentOS机器上安装并运行了Samba,您将需要配置防火墙并打开必要的端口。 为此,请运行以下命令:
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --zone=public --add-service=samba
创建Samba用户和目录结构
为了更易于维护和灵活性,而不是使用标准主目录(
/home/user
),所有Samba目录和数据都位于
/samba
目录中。
首先创建
/samba
目录:
sudo mkdir /samba
创建一个名为
sambashare
的新组。 稍后,我们将所有Samba用户添加到该组中。
sudo groupadd sambashare
将
/samba
目录组所有权设置为
sambashare
:
sudo chgrp sambashare /samba
Samba使用Linux用户和组权限系统,但是它具有自己的身份验证机制,与标准Linux身份验证分开。 我们将使用标准的Linux
useradd
工具创建用户,然后使用
smbpasswd
实用程序设置用户密码。
如简介中所述,我们将创建一个普通用户,该用户将有权访问其私有文件共享和一个管理帐户,该帐户具有对Samba服务器上所有共享的读写权限。
创建Samba用户
要创建一个名为
josh
的新用户,请使用以下命令:
sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh
useradd
选项具有以下含义:
- -M-不创建用户的主目录。 我们将手动创建此目录。
-d /samba/josh将用户的主目录设置为/samba/josh。-s /usr/sbin/nologin禁用此用户的shell访问。-G sambashare将用户添加到sambashare组。
创建用户的主目录,并将目录所有权设置为用户
josh
和组
sambashare
:
sudo mkdir /samba/josh
sudo chown josh:sambashare /samba/josh
以下命令会将setgid位添加到
/samba/josh
目录中,以便该目录中新创建的文件将继承父目录的组。 这样,无论哪个用户创建一个新文件,该文件都将具有
sambashare
组所有者。 例如,如果您未将目录的权限设置为
2770
,并且
sadmin
用户创建了一个新文件,则
josh
用户将无法读取/写入该文件。
sudo chmod 2770 /samba/josh
通过设置用户密码,将
josh
用户帐户添加到Samba数据库:
sudo smbpasswd -a josh
系统将提示您输入并确认用户密码。
New SMB password: Retype new SMB password: Added user josh.
设置密码后,通过键入以下内容来启用Samba帐户:
sudo smbpasswd -e josh
Enabled user josh.
要创建另一个用户,请重复与创建用户
josh
相同的过程。
接下来,让我们创建一个用户和组
sadmin
。 该组的所有成员将具有管理权限。 以后,如果您想授予其他用户管理权限,只需将该用户添加到
sadmin
组即可。
通过键入以下内容创建管理用户:
sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin
上面的命令还将创建一个
sadmin
组,并将用户添加到
sadmin
和
sambashare
组。
设置密码并启用用户:
sudo smbpasswd -a sadmin
sudo smbpasswd -e sadmin
接下来,创建
Users
共享目录:
sudo mkdir /samba/users
将目录所有权设置为用户
sadmin
和组
sambashare
:
sudo chown sadmin:sambashare /samba/users
所有经过身份验证的用户都可以访问此目录。 以下命令在
/samba/users
目录中配置对
sambashare
组成员的写/读访问:
配置Samba共享
打开Samba配置文件并添加以下部分:
sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf
path = /samba/users browseable = yes read only = no force create mode = 0660 force directory mode = 2770 valid users = @sambashare @sadmin path = /samba/josh browseable = no read only = no force create mode = 0660 force directory mode = 2770 valid users = josh @sadmin
这些选项具有以下含义:
-
和-登录时将使用的共享名称。path-共享的路径。browseable-共享是否应在可用共享列表中列出。 通过设置为no其他用户将看不到共享。read only-valid users列表中指定的valid users是否能够写入此共享。force create mode-设置此共享中新创建文件的权限。force directory mode-设置此共享中新创建目录的权限。valid users-允许访问共享的用户和组的列表。 组以@符号为前缀。
有关可用选项的更多信息,请参见Samba配置文件文档页面。
完成后,使用以下命令重新启动Samba服务:
sudo systemctl restart smb.service
sudo systemctl restart nmb.service
在以下各节中,我们将向您展示如何从Linux,macOS和Windows客户端连接到Samba共享。
从Linux连接到Samba共享
Linux用户可以使用文件管理器从命令行访问samba共享或挂载Samba共享。
使用smbclient客户端
smbclient
是一个允许您从命令行访问Samba的工具。
smbclient
软件包尚未在大多数Linux发行版中预安装,因此您需要使用分发软件包管理器进行安装。
要在Ubuntu和Debian上安装
smbclient
,请运行:
sudo apt install smbclient
要在CentOS和Fedora上安装
smbclient
,请运行:
sudo yum install samba-client
访问Samba共享的语法如下:
mbclient //samba_hostname_or_server_ip/share_name -U username
例如,要以用户
josh
身份连接到IP地址为
192.168.121.118
的Samba服务器上名为
josh
的共享,您将运行:
smbclient //192.168.121.118/josh -U josh
系统将提示您输入用户密码。
Enter WORKGROUP\josh's password:
输入密码后,您将登录Samba命令行界面。
Try "help" to get a list of possible commands. smb: \>
挂载Samba共享
要首先在Linux上安装Samba共享,您需要安装
cifs-utils
软件包。
在Ubuntu和Debian上运行:
sudo apt install cifs-utils
在CentOS和Fedora上运行:
sudo yum install cifs-utils
接下来,创建一个安装点:
sudo mkdir /mnt/smbmount
使用以下命令挂载共享:
sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount
例如,要将名为
josh
的共享作为用户
josh
装载到IP地址为
192.168.121.118
的Samba服务器上到
/mnt/smbmount
装载点,您将运行:
sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount
系统将提示您输入用户密码。
Password for josh@//192.168.121.118/josh: ********
使用GUI
文件,Gnome中的默认文件管理器具有内置选项,可以访问Samba共享。
- 打开文件,然后单击侧栏中的“其他位置”。在“连接到服务器”中,以以下格式
smb://samba_hostname_or_server_ip/sharename输入Samba共享的地址。单击“连接”,将出现以下屏幕:








结论
在本教程中,您学习了如何在CentOS 7上安装Samba服务器以及如何创建不同类型的共享和用户。 我们还向您展示了如何从Linux,macOS和Windows设备连接到Samba服务器。
桑巴桑托斯如何在centos 7上添加和删除用户
知道如何添加和删除用户是Linux用户应该知道的基本技能之一。 在本教程中,我们将说明如何在CentOS 7系统上添加和删除用户。
如何在centos 7上添加交换空间
交换是物理RAM内存已满时使用的磁盘空间。 本教程说明了如何在CentOS 7系统上添加交换文件。
如何在centos 8上添加交换空间
交换是物理RAM内存已满时使用的磁盘空间。 本文介绍了在CentOS 8系统上添加交换文件的步骤。
















