Paul W. Frields 发布的文章

前一篇文章介绍了 Fedora 系统上有关文件权限的一些基础知识。本部分介绍使用权限管理文件访问和共享的其他方法。它建立在前一篇文章中的知识和示例的基础上,所以如果你还没有阅读过那篇文章,请查看它。

符号与八进制

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号模式显示在屏幕上。

每个集合都有 rwx 条目,表示特定用户(所有者、组成员或其他)是否可以读取、写入或执行该文件。但是还有另一种表达这些权限的方法:八进制模式。

你已经习惯了十进制编号系统,它有十个不同的值(09)。另一方面,八进制系统有八个不同的值(07)。在表示权限时,八进制用作速记来显示 rwx 字段的值。将每个字段视为具有如下值:

  • r = 4
  • w = 2
  • x = 1

现在,你可以使用单个八进制值表达任何组合。例如,读取和写入权限(但没有执行权限)的值为 6。读取和执行权限的值仅为 5。文件的 rwxr-xr-x 符号权限的八进制值为 755

与符号值类似,你可以使用八进制值使用 chmod 命令设置文件权限。以下两个命令对文件设置相同的权限:

chmod u=rw,g=r,o=r myfile1
chmod 644 myfile1

特殊权限位

文件上还有几个特殊权限位。这些被称为 setuid(或 suid)、setgid(或 sgid),以及 粘滞位 sticky bit (或 阻止删除位 delete inhibit )。 将此视为另一组八进制值:

  • setuid = 4
  • setgid = 2
  • sticky = 1

除非该文件是可执行的,否则 setuid 位是被忽略的。如果是可执行的这种情况,则该文件(可能是应用程序或脚本)的运行就像拥有该文件的用户启动的一样。setuid 的一个很好的例子是 /bin/passwd 实用程序,它允许用户设置或更改密码。此实用程序必须能够写入到不允许普通用户更改的文件中(LCTT 译注:此处是指 /etc/passwd/etc/shadow)。因此它需要精心编写,由 root 用户拥有,并具有 setuid 位,以便它可以更改密码相关文件。

setgid 位对于可执行文件的工作方式类似。该文件将使用拥有它的组的权限运行。但是,setgid 对于目录还有一个额外的用途。如果在具有 setgid 权限的目录中创建文件,则该文件的组所有者将设置为该目录的组所有者。

最后,虽然文件粘滞位没有意义会被忽略,但它对目录很有用。在目录上设置的粘滞位将阻止用户删除其他用户拥有的该目录中的文件。

在八进制模式下使用 chmod 设置这些位的方法是添加一个值前缀,例如 4755,可以将 setuid 添加到可执行文件中。在符号模式下,ug 也可用于设置或删除 setuidsetgid,例如 u+s,g+s。粘滞位使用 o+t 设置。(其他的组合,如 o+su+t,是没有意义的,会被忽略。)

共享与特殊权限

回想一下前一篇文章中关于需要共享文件的财务团队的示例。可以想象,特殊权限位有助于更有效地解决问题。原来的解决方案只是创建了一个整个组可以写入的目录:

drwxrwx---. 2 root finance 4096 Jul  6 15:35 finance

此目录的一个问题是,finance 组成员的用户 dwaynejill 可以删除彼此的文件。这对于共享空间来说不是最佳选择。它在某些情况下可能有用,但在处理财务记录时可能不会!

另一个问题是此目录中的文件可能无法真正共享,因为它们将由 dwaynejill 的默认组拥有 - 很可能用户私有组也命名为 dwaynejill,而不是 finance

解决此问题的更好方法是在文件夹上设置 setgid 和粘滞位。这将做两件事:使文件夹中创建的文件自动归 finance 组所有,并防止 dwaynejill 删除彼此的文件。下面这些命令中的任何一个都可以工作:

sudo chmod 3770 finance
sudo chmod u+rwx,g+rwxs,o+t finance

该文件的长列表现在显示了所应用的新特殊权限。粘滞位显示为 T 而不是 t,因为 finance 组之外的用户无法搜索该文件夹。

drwxrws--T. 2 root finance 4096 Jul  6 15:35 finance

via: https://fedoramagazine.org/command-line-quick-tips-more-about-permissions/

作者:Paul W. Frields 选题:lujun9972 译者:wxy 校对:wxy

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

Fedora 与所有基于 Linux 的系统一样,它提供了一组强大的安全特性。其中一个基本特性是文件和文件夹上的权限。这些权限保护文件和文件夹免受未经授权的访问。本文将简要介绍这些权限,并向你展示如何使用它们共享对文件夹的访问。

权限基础

Fedora 本质上是一个多用户操作系统,它也有,用户可以是其成员。但是,想象一下一个没有权限概念的多用户系统,不同的登录用户可以随意阅读彼此的内容。你可以想象到这对隐私或安全性并不是很好。

Fedora 上的任何文件或文件夹都分配了三组权限。第一组用于拥有文件或文件夹的用户,第二组用于拥有它的,第三组用于其他人,即既不是该文件的用户也不是拥有该文件的组中的用户。有时这被称为全世界

权限意味着什么

每组权限都有三种形式:执行。其中每个都可以用首字母来代替,即 rwx

文件权限

对于文件,权限的含义如下所示:

  • 读(r):可以读取文件内容
  • 写(w):可以更改文件内容
  • 执行(x):可以执行文件 —— 这主要用于打算直接运行的程序或脚本

当你对任何文件进行详细信息列表查看时,可以看到这三组权限。尝试查看系统上的 /etc/services 文件:

$ ls -l /etc/services
-rw-r--r--. 1 root root 692241 Apr  9 03:47 /etc/services

注意列表左侧的权限组。如上所述,这些表明三种用户的权限:拥有该文件的用户,拥有该文件的组以及其他人。用户所有者是 root,组所有者是 root 组。用户所有者具有对文件的读写权限,root 组中的任何人都只能读取该文件。最后,其他任何人也只能读取该文件。(最左边的 - 显示这是一个常规文件。)

顺便说一下,你通常会在许多(但不是所有)系统配置文件上发现这组权限,它们只由系统管理员而不是普通用户更改。通常,普通用户需要读取其内容。

文件夹(目录)权限

对于文件夹,权限的含义略有不同:

  • 读(r):可以读取文件夹内容(例如 ls 命令)
  • 写(w):可以更改文件夹内容(可以在此文件夹中创建或删除文件)
  • 执行(x):可以搜索文件夹,但无法读取其内容。(这听起来可能很奇怪,但解释起来需要更复杂的文件系统细节,这超出了本文的范围,所以现在就这样吧。)

看一下 /etc/grub.d 文件夹的例子:

$ ls -ld /etc/grub.d
drwx------. 2 root root 4096 May 23 16:28 /etc/grub.d

注意最左边的 d,它显示这是一个目录或文件夹。权限显示用户所有者(root)可以读取、更改和 cd 到此文件夹中。但是,没有其他人可以这样做 —— 无论他们是否是 root 组的成员。注意,你不能 cd 进入该文件夹。

$ cd /etc/grub.d
bash: cd: /etc/grub.d: Permission denied

注意你自己的主目录是如何设置的:

$ ls -ld $HOME
drwx------. 221 paul paul 28672 Jul  3 14:03 /home/paul

现在,注意除了作为所有者之外,没有人可以访问此文件夹中的任何内容。这是特意的!你不希望其他人能够在共享系统上读取你的私人内容。

创建共享文件夹

你可以利用此权限功能轻松创建一个文件夹以在组内共享。假设你有一个名为 finance 的小组,其中有几个成员需要共享文档。因为这些是用户文档,所以将它们存储在 /home 文件夹层次结构中是个好主意。

首先,使用 sudo 创建一个共享文件夹,并将其设置为 finance 组所有:

$ sudo mkdir -p /home/shared/finance
$ sudo chgrp finance /home/shared/finance

默认情况下,新文件夹具有这些权限。注意任何人都可以读取或搜索它,即使他们无法创建或删除其中的文件:

drwxr-xr-x. 2 root root 4096 Jul  6 15:35 finance

对于金融数据来说,这似乎不是一个好主意。接下来,使用 chmod 命令更改共享文件夹的模式(权限)。注意,使用 g 更改所属组的权限,使用 o 更改其他用户的权限。同样,u 会更改用户所有者的权限:

$ sudo chmod g+w,o-rx /home/shared/finance

生成的权限看起来更好。现在,finance 组中的任何人(或用户所有者 root)都可以完全访问该文件夹及其内容:

drwxrwx---. 2 root finance 4096 Jul  6 15:35 finance

如果其他用户尝试访问共享文件夹,他们将无法执行此操作。太棒了!现在,我们的金融部门可以将文档放在一个共享的地方。

其他说明

还有其他方法可以操作这些权限。例如,你可能希望将此文件夹中的任何文件设置为 finance 组所拥有。这需要本文未涉及的其他设置,但请继续关注我们,以了解关于该主题的更多信息。


via: https://fedoramagazine.org/command-line-quick-tips-permissions/

作者:Paul W. Frields 选题:lujun9972 译者:MjSeven 校对:wxy

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

Fedora 系统对很多用户来说都很舒适。它有一个令人惊叹的桌面,可以轻松地完成日常任务。而在这光鲜的表面之下是由 Linux 系统提供的支持,而终端是高级用户使用这些底层能力的最简单方法。默认的终端简单且功能有限。但是,终端复用器能让你的终端变得非常强大。本文展示了一些流行的终端多路复用器以及如何安装它们。

为什么要用它?嗯,首先,它可以让你注销你的系统,而同时让你的终端会话不受干扰。退出你的控制台,这样安全,在其他地方旅行时通过远程登录 SSH 继续之前的操作是非常有用的。这里有一些工具可以看下。

最古老和最知名的终端多路复用器之一是 screen。但是,由于其代码不再维护,本文将重点介绍最近的应用。 (“最近的”是相对而言的,其中一些已存在多年!)

Tmux

tmuxscreen 最广泛使用的替代品之一。它有高度可配置的接口。你可以根据需要对 tmux 进行编程以启动特定类型的会话。在前面发表的这篇文章中你会发现更多关于 tmux 的信息:

已经是 tmux 用户?你可能会喜欢这篇使你的 tmux 会话更有效的文章

要安装 tmux,由于你可能已经在终端中,请带上 sudo 使用 dnf

$ sudo dnf install tmux

要开始学习,请运行 tmux 命令。单窗格窗口以你的默认 shell 启动。tmux 使用修饰键来表示接下来会发出命令。默认情况下,此键为 Ctrl+B。如果输入 Ctrl+B, C,你将创建一个带有 shell 的新窗口。

提示:使用 Ctrl+B, ? 进入帮助模式,会列出你可以使用的所有键。为了简单起见,你先查看 bind-key -T prefix 开头的行。这些是你可以在修饰键之后立即使用的键,可以用来配置你的 tmux 会话。你可以按 Ctrl+C 退出帮助模式回 tmux

要完全退出 tmux,请使用标准 exit 命令或 Ctrl+D 退出所有 shell。

Dvtm

你可能最近在 Fedroa Magzine 上看到过一篇 dwm,一个动态窗口管理器的文章。像 dwm 一样,dvtm 用于平铺窗口管理,但是是用在终端中。它的设计坚持 UNIX 的“做好一件事”的理念,在这里是管理终端中的窗口。

安装 dvtm 也很简单。但是,如果你想要前面提到的注销功能,你还需要 abduco 包来处理 dvtm 的会话管理。

$ sudo dnf install dvtm abduco

dvtm 已经映射了许多管理终端窗口的按键。默认情况下,它使用 Ctrl+G 作为其修饰键。这个按键告诉 dvtm 接下来的字符将成为它应该处理的命令。例如, Ctrl+G, C 创建一个新窗口,Ctrl+G, X 将其关闭。

有关使用 dvtm 的更多信息,请查看 dvtm主页,其中包含大量提示和入门信息。

Byobu

虽然 byobu 本身并不是真正的多路复用器 —— 它封装了 tmux 甚至更老的 screen 来添加功能,但它也值得在这里一提。通过帮助菜单和窗口选项卡,以便更加容易地找到那些功能,byobu 使终端复用器更适合初学者。

当然它也可以在 Fedora 仓库中找到。要安装它,请使用以下命令:

$ sudo dnf install byobu

默认情况下,byobu 会在内部运行 screen,因此你可能希望运行 byobu-tmux 来封装 tmux。你可以使用 F9 键打开帮助菜单以获取更多信息,来帮助你入门。

Mtm

mtm 是你可以找到的最小的复用器之一。事实上,它只有大约 1000 行代码!如果你处于受限的环境(例如旧硬件、最小容器等)中,你可能会发现它很有用。要开始使用,你需要安装一些包。

$ sudo dnf install git ncurses-devel make gcc

然后克隆 mtm 所在的仓库:

$ git clone https://github.com/deadpixi/mtm.git

进入 mtm 文件夹并构建程序:

$ make

你可能会收到一些警告,但完成后,你将会有一个非常小的 mtm 程序。使用以下命令运行它:

$ ./mtm

你可以在 GitHub 页面上找到该程序的所有文档。

这里只是一些终端复用器。你有想推荐的么?请在下面留下你的评论,享受在终端中创建窗口吧!


via: https://fedoramagazine.org/4-cool-terminal-multiplexers/

作者:Paul W. Frields 选题:lujun9972 译者:geekpi 校对:wxy

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

Ansible 是世界上最受欢迎的自动化引擎之一。它能让你自动化几乎任何事情,从本地系统的设置到大量的平台和应用。它是跨平台的,因此你可以将其用于各种操作系统。请继续阅读以获取有关如何在 Fedora 中获取最新 Ansible,以及它的一些更改和改进,以及如何使用它。

发布版本和功能

Ansible 2.8 最近发布了,其中包含许多修复、功能和增强。仅仅几天之后,它就可在 Fedora 29 和 30 以及 EPEL 中获取。两周前发布了后续版本 2.8.1。同样,新版本在几天内就可以在 Fedora 中获取。

使用 sudo 能够非常容易地从官方仓库安装:

$ sudo dnf -y install ansible

2.8 版本有很长的更新列表,你可以在 2.8 的迁移指南中阅读查看。但其中包含了一些好东西,比如 Python 解释器发现功能 。Ansible 2.8 现在会试图找出哪个 Python 是它所运行的平台的首选版本。如果失败,Ansible 会使用后备列表。但是,你仍然可以使用变量 ansible_python_interpreter 来设置 Python 解释器。

另一个变化使 Ansible 在各个平台上更加一致。由于 sudo 专用于 UNIX/Linux,而其他平台并没有,因此现在在更多地方使用 become。这包括了命令行开关。例如,-ask-sudo-pass 已变成了 -ask-become-pass,提示符也变成了 BECOME password:

2.8 和 2.8.1 版本中还有许多其他功能。有关所有细节,请查看 GitHub 上的官方更新日志

使用 Ansible

也许你不确定 Ansible 是否可以实际使用。别担心,你并不是唯一一个这样想的,因为它太强大了。但事实证明,它并不难以使用,在一个家庭内的几台电脑(甚至一台电脑)上设置都可以。

我们之前在 Fedora Magazine 中也讨论过这个话题:

试试看 Ansible,说下你的想法。很重要的一部分是让 Fedora 保持最新版本。自动化快乐!


via: https://fedoramagazine.org/get-the-latest-ansible-2-8-in-fedora/

作者:Paul W. Frields 选题:lujun9972 译者:geekpi 校对:wxy

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

网上有很多可以用来管理你个人财务的服务。虽然它们可能很方便,但这通常也意味着将你最宝贵的个人数据放在你无法监控的公司。也有些人对这些不太在意。

无论你是否在意,你可能会对你自己系统上的应用感兴趣。这意味着如果你不想,你的数据永远不会离开自己的计算机。这三款之一可能就是你想找的。

HomeBank

HomeBank 是一款可以管理多个账户的全功能软件。它很容易设置并保持更新。它有多种方式画出你的分类和负债,以便你可以看到资金流向何处。它可以通过官方 Fedora 仓库下载。

A simple account set up in HomeBank with a few transactions.

要安装 HomeBank,请打开“软件中心”,搜索 “HomeBank”,然后选择该应用。单击“安装”将其添加到你的系统中。HomeBank 也可以通过 Flatpak 安装。

KMyMoney

KMyMoney 是一个成熟的应用,它已经存在了很长一段时间。它有一系列稳定的功能,可帮助你管理多个帐户,包括资产、负债、税收等。KMyMoney 包含一整套用于管理投资和进行预测的工具。它还提供大量报告,以了解你的资金运作方式。

A subset of the many reports available in KMyMoney.

要安装它,请使用软件中心,或使用命令行:

$ sudo dnf install kmymoney

GnuCash

用于个人财务的最受欢迎的免费 GUI 应用之一是 GnuCash。GnuCash 不仅可以用于个人财务。它还有管理企业收入、资产和负债的功能。这并不意味着你不能用它来管理自己的账户。从查看在线教程和指南开始了解。

Checking account records shown in GnuCash.

打开“软件中心”,搜索 “GnuCash”,然后选择应用。单击“安装”将其添加到你的系统中。或者如上所述使用 dnf install 来安装 “gnucash” 包。

它现在可以通过 Flathub 安装,这使得安装变得简单。如果你没有安装 Flathub,请查看 Fedora Magazine 上的这篇文章了解如何使用它。这样你也可以在终端使用 flatpak install gnucash 命令。


照片由 Fabian Blank 拍摄,发布在 Unsplash 上。


via: https://fedoramagazine.org/3-apps-to-manage-personal-finances-in-fedora/

作者:Paul W. Frields 选题:lujun9972 译者:geekpi 校对:wxy

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

介绍你自己的思维导图,一开始听起来有些牵强。它是关于神经通路么?还是心灵感应?完全不是。相反,自己的思维导图是一种在视觉上向他人描述自己的方式。它还展示了你拿来描述自己的特征之间的联系。这是一种以聪明又同时可控的与他人分享信息的有用方式。你可以使用任何思维导图应用来做到。本文向你展示如何使用 Fedora 中提供的 FreeMind

获取应用

FreeMind 已经出现有一段时间了。虽然 UI 有点过时,应该做一些更新了,但它是一个功能强大的应用,提供了许多构建思维导图的选项。当然,它是 100% 开源的。还有其他思维导图应用可供 Fedora 和 Linux 用户使用。查看此前一篇涵盖多个思维导图选择的文章

如果你运行的是 Fedora Workstation,请使用“软件”应用从 Fedora 仓库安装 FreeMind。或者在终端中使用这个 sudo 命令:

$ sudo dnf install freemind

你可以从 Fedora Workstation 中的 GNOME Shell Overview 启动应用。或者使用桌面环境提供的应用启动服务。默认情况下,FreeMind 会显示一个新的空白脑图:

FreeMind 初始(空白)思维导图

脑图由链接的项目或描述(节点)组成。当你想到与节点相关的内容时,只需创建一个与其连接的新节点即可。

做你自己的脑图

单击初始节点。编辑文本并按回车将其替换为你的姓名。你就能开始你的思维导图。

如果你必须向某人充分描述自己,你会怎么想?可能会有很多东西。你平时做什么?你喜欢什么?你不喜欢什么?你有什么价值?你有家庭吗?所有这些都可以在节点中体现。

要添加节点连接,请选择现有节点,然后单击“Insert”,或使用“灯泡”图标作为新的子节点。要在与新子级相同的层级添加另一个节点,请使用回车。

如果你弄错了,别担心。你可以使用 Delete 键删除不需要的节点。内容上没有规则。但是最好是短节点。它们能让你在创建导图时思维更快。简洁的节点还能让其他浏览者更轻松地查看和理解。

该示例使用节点规划了每个主要类别:

个人思维导图,第一级

你可以为这些区域中的每个区域另外迭代一次。让你的思想自由地连接想法以生成导图。不要担心“做得正确“。最好将所有内容从头脑中移到显示屏上。这是下一级导图的样子。

个人思维导图,第二级

你可以以相同的方式扩展任何这些节点。请注意你在示例中可以了解多少有关 “John Q. Public” 的信息。

如何使用你的个人思维导图

这是让团队或项目成员互相介绍的好方法。你可以将各种格式和颜色应用于导图以赋予其个性。当然,这些在纸上做很有趣。但是在 Fedora 中安装一个就意味着你可以随时修复错误,甚至可以在你改变的时候做出修改。

祝你在探索个人思维导图上玩得开心!


via: https://fedoramagazine.org/mind-map-yourself-using-freemind-and-fedora/

作者:Paul W. Frields 选题:lujun9972 译者:geekpi 校对:wxy

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