使用Linux操作系统创建共享点 (linux 创建共享点)

在多人协作的环境中,共享点的作用是至关重要的。Linux操作系统正是通过共享点来实现为多个用户提供主机资源的。无论是在家庭网络还是企业内部网络中,共享点的创建都是一个相对简单的过程,只需几步即可实现。

创建共享点前的准备

在开始创建共享点之前,你需要做好以下准备工作:

1.确定使用的Linux发行版

Linux操作系统有众多的发行版,如Ubuntu、Fedora、Debian等等,不同的发行版安装共享点的方式也可能有所不同。在本文中,筆者以CentOS 7发行版为例来进行讲解。

2.确保Samba服务已安装

Samba是Windows和Linux操作系统之间协作的一个重要桥梁,可实现文件共享、打印机共享、用户身份验证等。在CentOS 7中,安装Samba服务的命令为:

sudo yum install samba

3.确定网络环境

在创建共享点之前,我们需要确定用户与主机之间的网络环境,以便正确配置共享点的访问权限。

如何在Linux操作系统中创建共享点

现在,让我们一步一步地来创建一个在Linux操作系统上的共享点。

1.创建一个公用共享目录

在创建共享点之前,我们需要先创建一个目录,并设置为共享目录,以供多个用户访问。我们可以通过以下命令创建一个名为“Shared” 的目录:

sudo mkdir /Shared

接着,为该目录授权,以允许多个用户在该目录中读写文件。我们可以通过以下命令进行授权:

sudo chmod 0777 /Shared

2.创建Samba用户

在设置共享点之前,我们需要创建一个Samba用户,以供多个用户访问共享点。我们可以通过以下命令来创建该用户:

sudo bpasswd -a username

其中“username”是我们需要创建的用户名。创建用户后,我们需要设置该用户的密码,以便其他用户可以使用该用户名和密码访问共享点。

3.编辑Samba配置文件

为了配置Samba服务,我们需要编辑Samba配置文件。接下来,我们将讲解如何通过编辑Samba配置文件来设置共享点的共享和访问权限。

在CentOS 7中,Samba配置文件的路径为“/etc/samba/b.conf”。为了编辑该文件,我们可以使用vi或nano等编辑器。

sudo nano /etc/samba/b.conf

以下是我们需要在该文件中添加的内容:

[Shared Directory]

comment = Shared Directory

path = /Shared

public = yes

writable = yes

browseable = yes

force user = username

其中,“[Shared Directory]”是该共享点的名称,可更改为您自己的名称。我们也可以给该共享点添加一个简短的描述,以便其他用户了解其作用。“path”则为共享目录的路径,这里设置为“/Shared”。

“public”设置为“yes”表示该共享点是公共的,任何用户都可以访问该共享点。“writable”设置为“yes”表示该共享点中的文件可以被读写。如果我们希望其他用户不仅可以读取文件,还需要修改和删除文件,就需要将其设置为“writable = yes”。

“browseable”设置为“yes”表示该共享点可以被浏览,其他用户可以看到该共享点的存在。“force user”则用于将Samba服务的默认用户更改为我们刚才创建的用户。

设置完成后,保存并关闭配置文件。

4.重启Samba服务

为了使更改生效,我们需要重启Samba服务。使用以下命令重启Samba服务:

sudo systemctl restart b.service

5.测试访问

现在,我们已经创建了一个在Linux操作系统上的共享点。现在,我们可以使用其他计算机测试对该共享点的访问权限。

在Windows操作系统中访问Linux共享点的步骤如下:

1.打开“计算机”资源管理器

2.在地址栏输入共享点的地址,如:\\192.168.1.100\Shared

其中,“192.168.1.100”是主机的IP地址,“Shared”为共享点名称。

3.输入Samba用户的用户名和密码,即可访问共享点。

结论

在本文中,我们已经详细介绍了如何在Linux操作系统中创建共享点。尽管创建共享点可能听起来很困难,但实际上,只要按照以上步骤进行操作,就可以实现简单的共享点设置。在需要协作的环境中,使用共享点可以提高工作效率和协作效果。

相关问题拓展阅读:

探讨一下 Linux 共享内存的 N 种方式

关于 Linux 共享内存,写得更好的应该是宋宝华的 《世上更好的共享内存》 一文。

本文可以说是对这篇文章的学习笔记,顺手练习了一下 rust libc —— shichaoyuan/learn_rust/linux-shmipc-demo

按照宋宝华的总结,当前有四种主流的共享内存方式:

前两种方式比较符合传统的用法,共享内侍碧存做为进程间通信的媒介。

第三种方式更像是通过传递内存“句柄”进行数据传输。

第四种方式是为设备间传递数据设计,避免内存拷贝,直接传递内存“句柄”。

这里尝试了一下第二种和第三种方式。

这套 API 应该是最档缺普遍的 —— shm_open + mmap,本质上来说 Aeron 也是用的这种方式(关于 Aeron 可以参考 我之前的文章 )。

看一下 glibc 中 shm_open 函数的实现就一清二楚了:

shm_open 函数就是在 /dev/shm 目录下建文件,该目录挂载为 tmpfs,至于 tmpfs 可以简单理解为存储介质是内存的一种文件系统,更准确的理解可以参考官方文档 tmpfs.txt 。

然后通过 mmap 函数将 tmpfs 文件映射到用户空间就可以随意操作了。

优点:

这种方式更大的优势在于共享的内存是有“实体”(也就是 tmpfs 中的文件)的,所以多个进程可以很容易通过文件名这个信息构建共享内存结构,特别适合把共享内存做为通信媒介的场景(例如 Aeron )。

缺点:

如果非要找一个缺点的话,可能是,文件本身独立于进程的生命周期,在使用完毕后需要注意删除文件(仅仅行谈辩 close 是不行的),否则会一直占用内存资源。

memfd_create 函数的作用是创建一个匿名的文件,返回对应的 fd,这个文件当然不普通,它存活在内存中。更准确的理解可以参考官方文档 memfd_create(2) 。

直观理解,memfd_create 与 shm_open 的作用是一样的,都是创建共享内存实体,只是 memfd_create 创建的实体是匿名的,这就带了一个问题:如何让其它进程获取到匿名的实体?shm_open 方式有具体的文件名,所以可以通过打开文件的方式获取,那么对于匿名的文件怎么处理呢?

答案是:通过 Unix Domain Socket 传递 fd。

rust 的 UDS 实现:

rust 在 std 中已经提供了 UDS 的实现,但是关于传递 fd 的 send_vectored_with_ancillary 函数还属于 nightly-only experimental API 阶段。所以这里使用了一个三方 crate —— sendfd ,坦白说可以自己实现一下,使用 libc 构建好 SCM_RIGHTS 数据,sendmsg 出去即可,不过细节还是挺多,我这里就放弃了。

这套 API 设计更灵活,直接拓展了我的思路,本来还是受限于 Aeron 的用法,如果在这套 API 的加持下,是否可以通过传递数据包内存块(fd)真正实现零拷贝呢?

优点:

灵活。

缺点:

linux 创建共享点的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 创建共享点,使用Linux操作系统创建共享点,探讨一下 Linux 共享内存的 N 种方式的信息别忘了在本站进行查找喔。


数据运维技术 » 使用Linux操作系统创建共享点 (linux 创建共享点)