2022年5月

了解如何在 Linux 上使用 dnf 命令安装软件包,然后下载我们的速查表,让正确的命令触手可及。

 title=

在计算机系统上安装应用程序非常简单:就是将档案(如 .zip 文件)中的文件复制到目标计算机上,放在操作系统预期放应用程序的位置。因为我们中的许多人习惯于使用花哨的安装“向导”来帮助我们在计算机上安装软件,所以这个过程似乎在技术上应该比实际更复杂。

然而,复杂的是,是什么构成了一个程序?用户认为的单个应用程序实际上包含了分散在操作系统中的软件库的各种依赖代码(例如:Linux 上的 .so 文件、Windows 上的 .dll 文件和 macOS 上的 .dylib 文件)。

为了让用户不必担心这些程序代码之间的复杂的互相依赖关系, Linux 使用 包管理系统 package management system 来跟踪哪些应用程序需要哪些库,哪些库或应用程序有安全或功能更新,以及每个软件会附带安装哪些额外的数据文件。包管理器本质上是一个安装向导。它们易于使用,提供了图形界面和基于终端的界面,让你的生活更轻松。你越了解你的发行版的包管理器,你的生活就会越轻松。

在 Linux 上安装应用程序

如果你在使用 Linux 桌面时,偶尔想要安装一个应用程序,那么你可能正在寻找 GNOME “软件”,它是一个桌面应用程序浏览器。

 title=

它会按你的预期工作:点击它的界面,直到你找到一个看起来有用的应用程序,然后单击 “安装” 按钮。

或者,你可以在 GNOME “软件” 中打开从网络下载的 .rpm.flatpakref 软件包,以便它进行安装。

但如果你更倾向于使用命令行,请继续阅读。

用 dnf 搜索软件

在安装应用程序之前,你可能需要确认它是否存在于你的发行版的服务器上。通常,使用 dnf 搜索应用程序的通用名称就足够了。例如,假设你最近阅读了 一篇关于 Cockpit 的文章,并决定尝试一下。你可以搜索 cockpit 验证该发行版是否包含它:

$ dnf search cockpit
 Last metadata expiration check: 0:01:46 ago on Tue 18 May 2021 19:18:15 NZST.
 ==== Name Exactly Matched: cockpit ====
 cockpit.x86_64 : Web Console for Linux servers

==== Name & Summary Matched: cockpit ==
 cockpit-bridge.x86_64 : Cockpit bridge server-side component
 cockpit-composer.noarch : Composer GUI for use with Cockpit
 [...]

有一个精确的匹配。上面列出的匹配的软件包名为 cockpit.x86_64,但名称中的 .x86_64 部分仅表示它兼容该 CPU 架构。默认情况下,你的系统会安装适配当前 CPU 架构的软件包,因此你可以忽略该扩展名。所以你确认你要查找的软件包确实简称为 cockpit

现在你可以放心地使用 dnf install 安装它。 此步骤需要管理员权限:

$ sudo dnf install cockpit

一般来说,这就是典型的 dnf 工作流:搜索并安装。

然而,有时 dnf search 的结果并不清晰,或者你想要关于一个软件包的更多信息,而不仅仅是它的通用名称。有一些相关的 dnf 子命令,具体取决于你想要的信息。

软件包的元数据

如果你觉得你的搜索已 接近 想要的结果,但还不确定,查看软件包的元数据通常会有所帮助,例如项目的网址和描述。要获取此信息,请使用顾名思义的 dnf info 命令:

$ dnf info terminator
Available Packages
Name         : terminator
Version      : 1.92
Release      : 2.el8
Architecture : noarch
Size         : 526 k
Source       : terminator-1.92-2.el8.src.rpm
Repository   : epel
Summary      : Store and run multiple GNOME terminals in one window
URL          : https://github.com/gnome-terminator
License      : GPLv2
Description  : Multiple GNOME terminals in one window.  This is a project to produce
             : an efficient way of filling a large area of screen space with
             : terminals. This is done by splitting the window into a resizeable
             : grid of terminals. As such, you can  produce a very flexible
             : arrangements of terminals for different tasks.

这个信息告诉你可用软件包的版本、在你系统中注册的哪一个存储库提供了它、该项目的网站以及详细的功能描述。

哪个软件包提供的这个文件?

软件包名称并不总是与你要查找的内容相匹配。例如,假设你正在阅读的文档告诉你必须安装名为 qmake-qt5 的东西:

$ dnf search qmake-qt5
No matches found.

dnf 数据库非常广泛,因此你不要局限于搜索完全匹配的内容。你可以使用 dnf provides 命令来了解你正在寻找的东西是否作为某个更大的软件包的一部分而提供:

$ dnf provides qmake-qt5
qt5-qtbase-devel-5.12.5-8.el8.i686 : Development files for qt5-qtbase
Repo        : appstream
Matched from:
Filename    : /usr/bin/qmake-qt5

qt5-qtbase-devel-5.15.2-3.el8.x86_64 : Development files for qt5-qtbase
Repo        : appstream
Matched from:
Filename    : /usr/bin/qmake-qt5

可以确认应用程序 qmake-qt5 是名为 qt5-qtbase-devel 的软件包的一部分。它还告诉你,该应用程序会安装到 /usr/bin,因此你知道了安装后它的确切位置。

软件包中包含哪些文件?

有时我发现自己会从完全不同的角度来对待 dnf。有时,我已经确认我的系统上安装了一个应用程序;我只是不知道我是怎么得到它的。还有一些时候,我知道我安装了一个特定的软件包,但我不清楚这个软件包到底在我的系统上安装了什么。

如果你需要对包的 有效负载 payload 进行 “ 逆向工程 reverse engineer ”,可以使用 dnf repoquery 命令和 --list 选项。这将查看存储库中有关软件包的元数据,并列出该软件包提供的所有文件:

$ dnf repoquery --list qt5-qtbase-devel
/usr/bin/fixqt4headers.pl
/usr/bin/moc-qt5
/usr/bin/qdbuscpp2xml-qt5
/usr/bin/qdbusxml2cpp-qt5
/usr/bin/qlalr
/usr/bin/qmake-qt5
/usr/bin/qvkgen
/usr/bin/rcc-qt5
[...]

这些列表可能很长,使用 less 或你喜欢的分页命令配合管道操作会有所帮助。

移除应用程序

如果你决定系统中不再需要某个应用程序,可以使用 dnf remove 卸载它,该软件包本身安装的文件以及不再需要的任何依赖项都会被移除:

$ dnf remove bigapp

有时,你发现随着一个应用程序一起安装的依赖项对后来安装的其他应用程序也有用。如果两个包需要相同的依赖项,dnf remove 不会 删除依赖项。在安装和卸载大量应用程序之后,孤儿软件包散落各处的现象并不少见。大约每年我都要执行一次 dnf autoremove 来清除所有未使用的软件包:

$ dnf autoremove

这不是必需的,但这是一个让我的电脑感觉更好的大扫除步骤。

了解 dnf

你对包管理器的工作方式了解得越多,在必要时安装和查询应用程序就越容易。即便你不是 dnf 的重度使用者,当你发现自己与基于 RPM 的发行版交互时,了解它也会很有用。

告别 yum 后,我最喜欢的包管理器之一是 dnf 命令。虽然我不喜欢它的所有子命令,但我发现它是目前最健壮的 包管理系统 package management system 之一。 下载我们的 dnf 速查表 习惯该命令,不要害怕尝试一些新技巧。一旦熟悉了它,你可能会发现很难使用其他任何东西替代它。

dnf 速查表

via: https://opensource.com/article/21/6/dnf-linux

作者:Seth Kenlon 选题:lujun9972 译者:hanszhao80 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

你可以在虚拟机环境里运行任何操作系统,不论是测试还是为了某种需要。

开源朗读者 | 淮晋阳

对于 Linux 而言,它在虚拟环境下的性能会优于其他操作系统。即便你可能会犹豫是否在物理机(裸金属)上安装 Linux 系统,你仍然可以在虚拟机中安装一个性能几乎和物理机一样好的 Linux 系统。

当然,这并不意味着宿主系统为 Linux 时你就不能在虚拟机实例中安装 Linux 了。

更何况,你在虚拟环境下使用 Linux 系统有许多好处。大致如下。

在虚拟环境下运行 Linux 之前的注意事项

在虚拟环境下运行 Linux 或许并不是艰巨的任务,但仍有以下几点你需谨记。

  • 虚拟机的性能取决于宿主机的性能,如果你并没有足够的系统资源分配给虚拟机,那么虚拟机的使用体验注定不会很好。
  • 某些特性仅在物理机(裸金属)上生效,包括硬件加速以及图形(显卡)驱动等。
  • 密集的磁盘 I/O 任务性能会十分受限,例如游戏测试场景。
  • 用户的 Linux 虚拟机实例体验会根据你所使用的虚拟化程序而发生变化,这些虚拟化程序包括 VMware、VirtualBox、GNOME Boxes 以及 Hyper-V 。

此外,你应当列出你的需求,并根据这些需求选定适当的虚拟化程序来运行你的 Linux 实例。

十条在虚拟环境中运行 Linux 的优点

尽管运行虚拟化 Linux 实例极具吸引力,你仍然应当首先考虑当前使用的宿主系统中已有的选择。例如,如果你不需要图形化桌面,或许利用 Windows 操作系统中的 WSL 安装 Linux 就可以满足你的需求。

一旦你确定了使用虚拟机,那么这些优点将会如影随形:

1、部署简便

部署简便

与在传统物理机(裸金属)上安装 Linux 相比,在虚拟机中部署一般会容易许多。

对于基于 Ubuntu 的发行版而言,像 VMware 这样的虚拟化程序会提供一个 快速安装 的选项,你仅需输入用户名和密码,其余过程将自动完成而无需其他操作。你无需手动设置分区、引导程序以及更多高级设置。

某些情况下,一些发行版的开发者会同时提供针对特定虚拟机的预构建镜像,只需打开就可使用。这就好像一个便携式虚拟机镜像,随时可以开箱即用。

例如,在 这里 你将看到如何在虚拟机中安装 Arch Linux 发行版。

对于其他的发行版,你或许仍需要进行一些配置,但一般都会有快速安装的选项令你可以轻松部署。

2、不会影响宿主机

不会影响宿主机

对于虚拟机,你可以更为随心所欲地使用,因为虚拟机系统和宿主机系统是隔离的。

很多时候,如果你并不熟悉 Linux 系统,你很可能会把配置弄得十分混乱。

所以在虚拟机里,你可以随意尝试而无需担心是否会影响到宿主机系统。换句话说,任何虚拟机的操作都不会影响到宿主机,因为它们是完全隔离的。

故此,虚拟机是你最好的试验场,尤其是对于一些激进或具有破坏性的试验。

3、资源可高效共享

资源可高效共享

如果你有十分充裕的系统资源,你可以使用虚拟机运行其他任务,从而充分利用起来这部分闲置的系统资源。例如,如果你需要一个十分私密的浏览环境,虚拟机将为你阻挡一切针对宿主机的追踪器。

这可能略显牵强,但这仅仅是一个例子。基于这样的想法你将可以充分利用全部的系统资源。

而对于双启动方案,你需要在单独的磁盘上在 Windows 之后安装 Linux,或者在 Linux 之后安装 Windows,你需要为你的任务锁定相应的资源。

但利用虚拟机,你无需锁定部分资源也可以使用 Linux ,也不必为了特定的任务而临时共享资源,这样会方便许多。

4、多任务体验更好

多任务体验更好

有了资源共享机制,多任务会前所未有的容易。

在双启动的场景下,你需要来回重启切换才能使用 Linux 或 Windows 。

但如果使用虚拟机,你几乎不再需要 双启动,两个系统将无缝协作并完成多任务。

当然,你需要确认你拥有足够的系统资源和额外的硬件(例如双显示器)来更高效地使用。而多任务的潜力也因 Linux 虚拟机的存在而愈发强大。

5、软件测试更为便捷

有了虚拟化,你将可以创建大量的 Linux 实例,来模拟特定的使用场景,并对软件进行测试。

例如,你可以在不同的 Linux 虚拟机中同步测试不同的软件版本。这有丰富的使用场景,包括对开发版软件进行测试以及 Linux 发行版的早期测试等等。

6、开发更为便捷

开发更为便捷

当你在学习编程或者刚加入一个软件项目的开发的时候,你会希望拥有一个没有任何冲突和错误的开发环境。

在 Linux 虚拟机里,你可以从零开始搭建一个不会与已经存在的环境冲突的开发环境。例如,你可以在 Ubuntu 上 安装并测试 Flutter

如果环境出了问题,你可以轻而易举地删掉这个虚拟机,并重新开始来修正错误。

Linux 虚拟机的隔离环境是一个绝佳的开发和测试环境。

7、学习和研究的好帮手

Linux 值得反复探索。除了基础的计算任务,你可以做许多其他的事情。

你可以学习如何修改你的用户界面,尝试一些常见的桌面环境安装大量常用软件 ,与此同时仍能让一切处于掌控之中。

如果出现问题,新建一个 Linux 虚拟机就可以解决。当然,这并不仅限于日常使用需要,还可以启发系统管理员在其中测试他们所学的知识。

8、更容易复制和迁移

虚拟机可以很容易地复制和迁移。只要其它的宿主机系统支持该虚拟化程序,你就可以很容易地迁移它,而没有特别要求。

不论因何原因,几次简单的点击就可以完成复制和迁移的任务。

9、尝试大量的发行版

尝试大量的发行版

你可以在虚拟环境下尝试数以百计的 Linux 发行版。

你或许会认为这和第七条重复了,但是我相信,测试一个发行版是一个巨大的系统性工程,尤其是当你决定切换发行版做为宿主机或其他用途时。

10、便于调试

不论是严肃的开发活动还是一般的研究,在隔离的虚拟环境中调试和除错相对而言会更简单。

你可以快速尝试大量的调试方法而无需考虑影响。同时,如果你的宿主机是 Linux 系统的话,无需宿主机上的 root 权限便可以访问和修改虚拟机中的配置文件。

总而言之

如果你不熟悉正在使用的系统或者依赖不同的操作系统工作,虚拟机将是协助你工作的一大利器。

Linux 虚拟机可以广泛用于开发、学习、试验或任何特定用途。

你在虚拟机中使用过 Linux 吗?都有哪些应用场景呢?欢迎留言评论!


via: https://itsfoss.com/why-linux-virtual-machine/

作者:Ankush Das 选题:lkxed 译者:PeterPan0106 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

报道称,在推特确认接受收购请求的几个小时后,埃隆·马斯克就明确表示了他对推特的期望。马斯克在一份新闻稿中罗列了他计划做出的重大改变,包括开源“决定用户在推流中看到什么”的算法。

马斯克希望开源推特的算法,是因为他长期以来一直担心该平台有可能进行政治压制。但老实说,即便开源,也不可能达到他的预期效果。专家们担心,这可能反而带来一连串意想不到的问题。

虽然马斯克对权威深恶痛绝,但是他对算法开源的野心和世界各地立法者的愿望不谋而合。近年来,许多政府都将这一原则作为打击大科技公司的基石。

英国社交媒体监管机构 Ofcom 的首席执行官 Melanie Dawes 曾表示,社交媒体公司应当解释其代码的运作方式。此外,欧盟新近通过的《 数字服务法案 Digital Services Act (DSA)》于 4 月 23 日获得批准,该法案将责成平台提供更多的公开性。2022 年 2 月,美国的民主党参议员提交了《 算法问责法案 Algorithmic Accountability Act (AAA)》的立法申请。这些法案的目标是加强算法的透明度和监督,包括我们在社交媒体上的“ 时间轴 timeline ”和“ 新闻流 news feed ”以及我们生活的其他方面。

允许竞争者看到并修改推特的算法,可能意味着有人会偷取源代码,并提供一个改名的版本。互联网的许多部分都运行在开源软件上,其中最著名的就是 OpenSSL,这是一个被大量在线使用的安全工具包,而它在 2014 年被黑客攻击了。

还有一些已经创建的开源社交网络。Mastodon 是一个微博网络,为回应对 Twitter 主导地位的担忧而创建。它允许用户检查其代码,这些代码可在 GitHub 软件仓库中找到。

然而,阅读一个算法背后的代码,并不总能告诉你它的工作方式,而且对于大部分普通人来说,它也提供不了足够的关于公司组织架构以及开发流程的信息。

Jonathan Gray 是伦敦国王学院/关键基础设施研究的高级讲师,他说:“这有点像只用遗传物质来理解古代生物。是的,它能告诉我们的信息比任何方式都多,但如果说我们因此了解它们的生活方式,那就太夸张了。”

推特同样也不是由单一算法控制的。Catherine Flick 是英国德蒙福特大学/研究计算和社会责任的研究员,她说:“其中一些会决定人们在他们的“时间轴”上看到什么趋势、内容或者推荐关注的人。调节用户“时间轴”上显示哪些信息的算法,将会是人们最感兴趣的。然而,即使如此,如果缺少训练数据,单纯开源算法也没多大用处。”

Cobbe 认为,开源推特算法的危害大于好处。因为计算机代码并没有透露算法是如何开发或评估的:有哪些元素或考虑、在这个过程中的优先级是什么等等。所以开源可能不会使推特的透明度发生重大变化。反而,它可能会带来严重的安全隐患。


via: https://www.opensourceforu.com/2022/04/elon-musks-plan-to-open-source-the-twitter-algorithm-has-flaws/

作者:Laveesh Kocher 选题:lkxed 译者:lkxed 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Kindle 将支持 EPUB 格式的电子书

亚马逊 Kindle 一直不支持 EPUB 格式,而是使用它自己的专有格式。对于那些只依赖 Kindle 电子阅读器和应用程序,并且只从亚马逊购买电子书的人来说,这并不是一个问题。但是市场上有无数的电子阅读器都支持 EPUB 电子书文件格式。据报道,从 2022 年底开始,用户将能够通过电子邮件或应用程序将 EPUB 文件发送到他们的设备上。Kindle 仍然不能原生加载 EPUB 文件,而是会在服务器端自动将 EPUB 转换为 Kindle 支持的格式。

消息来源:gizmodo
老王点评:终于走向了支持开放格式。

俄军从乌克兰盗走的农机被远程锁定

通常人们对农用设备带有的一些远程功能有争议,比如远程锁定功能。据报道,俄罗斯士兵从乌克兰的一家公司盗走了价值近 500 万美元的农用设备,包括两台各价值 30 万美元的联合收割机,并将其运往 700 多英里的车臣。这些农用设备配备了 GPS 跟踪系统,现在它们停留在一家农场一动不动,因为它们被远程锁定了。俄罗斯正试图绕过这些保护。

消息来源:CNN
老王点评:不知道进口的大型农机是不是也会被锁定。

心理健康应用程序的隐私保护非常糟糕

根据 Mozilla 研究人员的一项新分析,按照类别对比,心理健康应用程序对用户的隐私保护比大多数其他类型的应用程序更差。这些应用程序是为精神健康状况等敏感问题而设计的,但却在模糊的隐私政策下收集大量的个人数据,并为广告目的分享用户信息。其中大多数应用程序也有不良的安全做法,尽管包含了深刻的个人信息,却让用户用弱的密码创建账户。研究人员称,“它们的运作就像披着心理健康应用程序外衣的数据吸纳机。”换句话说,披着羊皮的狼。

消息来源:theverge
老王点评:这些应用并不是心理医生,也没有心理医生的职业操守。

虽然 Canonical 已经不再维护 Unity 桌面,但 Ubuntu Unity 的开发者承担了这项重任,发布了一项主要更新(已可用于测试)。

Unity 7.6

怕你兴奋过头了,先提醒一下,Canonical 并没有回归 Unity 桌面的维护。

得益于 Ubuntu Unity 发行版开发者(Rudra Saraswat)的不懈努力,时隔 6 年,我们终于看到了 Unity 桌面环境的更新。

补充说一下,Ubuntu Unity 是一款采用 Unity 桌面(而不是 GNOME)的社区项目。因此,如果你想在 Ubuntu 22.04 LTS 上使用 Unity 桌面,那么毋庸置疑,Ubuntu Unity 绝对是你的最佳伙伴。

起初,它仅仅提供了经过微调的 Unity 体验,但现在,Unity 7.6 的界面得到了一些优化及视觉变更。

下面是你应该了解的东西:

Unity 7.6:更新了什么?

提示:Unity 7.6 是为公共测试而发布的,它不应作为替代其他桌面环境的使用环境。

这不仅仅是面向用户的改进,还有针对开发方面的努力,旨在帮助贡献者,让他们更方便地帮助 Unity7 的开发。

这些改善包括:

用户界面变更

Unity 桌面

Dash 启动器(应用启动器)与 HUD 现已重新设计,拥有更现代、简洁的视觉。

总的来看,现在的设计看上去更加扁平,但仍旧保留了不错的系统全局模糊效果。

本次引入了一些细微的视觉改进,比如停靠区上的“清空回收站”按钮修改为使用 Nemo(而不是 Nautilus),以及修复了 Dash 预览中的应用详情与评分。

性能改进

Unity 桌面

在最新的更新中,Unity7 的内存使用量更低,同时你也可以注意到,Ubuntu Unity 22.04 的内存使用量明显降低到约 700-800 MB。

此外,低端显卡模式现在运作得更好,Dash 也比以前更快。

其他变化

Unity7 Shell 的源代码已经完全迁移至 GitLab。用于独立测试的 Unity7 启动器已被修复,同时一些有问题的测试项也已被禁用,改善了构建用时(使其大幅缩短)。

发布说明上说,这些改进将帮助 Unity7 的贡献者。

测试 Unity 7.6

你可以按照 官方测试公告 中提到的方式来编译它,并亲自尝试。你也可以前往其官方网站探索更多。

Unity 7.6

另一种情况,如果你不想添加测试 PPA 源,你也可以等待 Ubuntu Unity 22.04 的更新。

你对 Unity 桌面环境的这次更新有什么看法?你喜欢它吗?欢迎在评论区中告诉我你的想法。


via: https://news.itsfoss.com/unity-7-6-testing/

作者:Ankush Das 选题:lkxed 译者:imgradeone 校对:校对者ID

本文由 LCTT 原创编译,Linux中国 荣誉推出

使用 Samba 设置跨平台文件共享。

 title=

如果你使用不同的操作系统,能够在它们之间共享文件会让你倍感方便。这篇文章介绍如何使用 Sambamount.cifs 在 Linux (Fedora 33)和 Windows 10 之间设置文件共享。

Samba 是 SMB/CIFS 协议的 Linux 实现,允许通过网络连接直接访问共享的文件夹和打印机。 mount.cifs 是 Samba 套件的一部分,可让你在 Linux 下挂载 CIFS 文件系统。

注意: 这些说明适用于在你的私有本地网络内,或在 Linux 宿主机和虚拟化的 Windows 访客机之间的虚拟主机专用网络中共享文件。不要将本文视为你公司网络的操作指南,因为本文没有实现必要的网络安全考虑。

从 Windows 访问 Linux

本节介绍从 Windows 文件资源管理器访问用户的 Linux 主目录。

1、安装和配置 Samba

进入你的系统安装 Samba:

dnf install samba

Samba 是一个系统守护进程,其配置文件位于 /etc/samba/smb.conf。它的默认配置应该就可以工作。如果不行,下面这个最小化配置应该可以解决问题:

[global]
        workgroup = SAMBA
        server string = %h server (Samba %v)
        invalid users = root
        security = user
[homes]
        comment = Home Directories
        browseable = no
        valid users = %S
        writable = yes

你可以在该项目网站的 smb.conf 部分找到参数的详细说明。

2、修改 LinuxSE

如果你的 Linux 发行版受 SELinux 保护(比如 Fedora),必须通过以下命令才能通过 Samba 共享主目录:

setsebool -P samba_enable_home_dirs on

通过以下命令查看这个值:

getsebool samba_enable_home_dirs

输出如下:

 title=

3、启用你的用户

Samba 使用一组用户/密码来管理连接权限。通过键入以下命令将你的 Linux 用户添加到该集合中:

smbpasswd -a <你的用户名>

系统提示你输入密码。这是一个 全新 的密码;而不是你账户的当前密码。请输入你想用来登录 Samba 的密码。

键入以下命令得到有 Samba 使用权限的用户列表:

pdbedit -L -v

键入以下命令删除一个用户:

smbpasswd -x <用户名>

4、开启 Samba

既然 Samba 是一个系统守护进程,你可以在 Fedora 上键入以下命令启动它:

systemctl start smb

这将为当前会话开启 Samba 服务。如果想让它自启动,键入以下命令:

systemctl enable smb

在某些系统上,Samba 守护进程注册为 smbd

4、配置防火墙

你的防火墙会默认阻拦 Samba。通过配置防火墙允许 Samba 能永久访问网络。

你可以在命令行执行如下操作:

firewall-cmd --add-service=samba --permanent

或者,你可以使用 firewall-config 工具以图形化方式进行操作:

 title=

5、从 Windows 访问 Samba

在 Windows 中,打开文件资源管理器。在地址栏中,键入两个反斜杠(\\),紧跟你的 Linux 机器的地址(IP 地址或主机名):

 title=

系统将提示你输入登录信息。输入第 3 步中的用户名和密码组合。你现在应该可以访问 Linux 机器上的主目录:

 title=

从 Linux 访问 Windows

以下步骤说明了如何从 Linux 访问共享的 Windows 文件夹。要实现这一点,需要你的 Windows 用户帐户具有管理员权限。

1、启用文件共享

通过点击 “Windows 按钮” > “ 设置 Settings ” > “ 网络和 Internet Network & Internet ” ,或者右键单击任务栏右下角的小监视器图标, 打开网络和共享中心 Open Network an d Sharing Center

 title=

在打开的窗口中,找到你要使用的连接并记下其配置文件。我使用了 以太网 3,它被标记为 公用网络 Public Network

注意:如果你的 PC 经常连接公用网络,请考虑将本地计算机的连接配置文件更改为 私有

记住你的网络配置,然后单击 更改高级共享设置 Change advanced sharing settings

 title=

选择与你的连接对应的配置文件并打开 网络发现 network discovery 文件和打印机共享 file and printer sharing

 title=

2、定义一个共享文件夹

通过右键单击你要共享的文件夹打开上下文菜单,导航到 授予访问权限 Give access to ,然后选择 特定用户... Specific people...

 title=

检查你当前的用户名是否在列表中。点击 共享 Share 将此文件夹标记为共享:

 title=

你可以通过在文件资源管理器的地址栏中输入 \\localhost 来显示所有共享文件夹的列表:

 title=

 title=

3、在 Linux 下挂载共享文件夹

回到你的 Linux 系统,打开一个命令行,然后创建一个新文件夹,用于挂载 Windows 共享:

mkdir ~/WindowsShare

挂载 Windows 共享是使用 mount.cifs 完成的,它应该被默认安装。使用如下命令临时挂载你的共享文件夹:

sudo mount.cifs //<address-of-windows-pc>/MySharedFolder ~/WindowsShare/ -o user=<Windows-user>,uid=$UID

在这个命令里:

  • <address-of-windows-pc> 是 Windows PC 的地址信息(IP 或主机名)
  • <Windows-user> 是允许访问共享文件夹的用户(见步骤 2)

系统将提示你输入 Windows 密码。之后,你将能够使用普通 Linux 用户访问 Windows 上的共享文件夹。

要卸载共享文件夹:

sudo umount ~/WindowsShare/

你还可以在系统启动时挂载 Windows 共享文件夹。按照 这些步骤 相应地配置你的系统。

总结

在这里展示了如何建立临时的文件夹共享访问权限,每次重启后都要重新设置,因此修改成永久访问会更便利。我经常在不同的系统之间来回切换,对我而言设置直接文件访问非常实用。


via: https://opensource.com/article/21/4/share-files-linux-windows

作者:Stephan Avenwedde 选题:lujun9972 译者:hanszhao80 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出