标签 权限 下的文章

不要让文件权限拖你后腿。以下是在 Linux 和 macOS 上管理它们的方法。

如果你通过网络或“跑腿网络”(将文件保存到硬盘,以将其复制到一台计算机)在两个用户之间共享文件,那么在尝试读取或写入文件时可能会遇到权限错误。即使你了解它的概念,你也可能不知道该如何诊断或解决问题。我曾经将数据迁移作为一项服务执行,因此我遇到了相当多的权限错误和所有权冲突。这是我快速修复它们的方法。

1、确定正确的用户

在修复权限错误之前,你必须确定需要权限的人是谁。你可能认为你已经知道这一点,但你可能没有意识到用户名并不是用户身份的最确定属性。你的计算机不会将你视为一个人,而是将你视为一个数字。要了解你的号码,请查看你的用户 ID:

$ id --user
1005

2、获取当前所有者

接下来,确定你无法与之交互的文件的所有者。由于发生了文件权限问题,你可能需要使用 sudo 命令查看有关文件的信息:

$ sudo ls --numeric-uid-gid
-rw------- 1 1000 100  23041 Aug  2 05:26 bar
-rw------- 1 1000 100  54281 Aug  2 04:58 baz
-rw------- 1 1000 100    822 Aug  2 08:19 foo

在此示例中,拥有文件的用户被标识为用户 ID 1000,这就是用户 ID 1005 无法与它们交互的原因。更糟糕的是,这些文件标记为仅由拥有它们的用户可读和可写,因此即使是同一组的成员也不能与这些文件进行交互。

3、更改权限以匹配

你知道需要权限的用户,因此你可以更改当前所有者以匹配你当前的用户:

$ sudo chown 1005 foo

你还可以通过更改文件模式授予你的组成员以及系统上可能的其他用户对文件的访问权限。例如,在向组和任何其他用户授予读取权限(4)的同时保持读取和写入权限(7):

$ sudo chmod 744 foo

了解更多

当你对文件权限不熟悉时,它们似乎很棘手。有关文件所有权如何工作的更多信息,请阅读 chown 简介


via: https://opensource.com/article/22/8/fix-file-permission-errors-linux

作者:Seth Kenlon 选题:lkxed 译者:geekpi 校对:wxy

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

了解如何使用 Flatseal 应用管理 Flatpak 权限,它为你提供了一个友好的 GUI 和额外的功能。

从新用户的角度来看,在 Linux 中安装应用可能是一个挑战。主要原因是有这么多的 Linux 发行版。而你需要为各种 Linux 发行版提供不同的安装方法或说明。对于一些用户来说,这可能会让他们不知所措。此外,对于开发者来说,为不同的发行版创建独立的软件包和构建也很困难。

Flatpak 解决了这个问题。如何解决?

它使用了容器技术,使同一个应用的可执行文件在所有的 Linux 平台上都能类似地运行。例如,一个单一的可执行文件可以在 Ubuntu、Fedora、OpenSUSE、Arch Linux 和许多其他平台上运行。

此外,开发人员还可以减少为不同平台打包同一应用的努力。他们可以专注于应用的功能,而不是发行或部署。

此外,Flatpak 应用还能即时更新,当有了最新版本,你就能得到它。

所有这些好处也开启了一个重要的问题。Flatpak 应用需要的权限是什么?你如何轻松地管理它们?例如,一个应用可能只需要网络访问,而不需要磁盘空间。或者另一个可能有截图的权限,但可能根本就不需要。

所以,审查一个 Flatpak 应用的权限是非常必要的。这与你的安卓或 iOS 应用的权限类似。

最后,即使你是一个新用户,管理和审查权限也不是那么困难,这要感谢图形化的应用 - Flatseal。

什么是 Flatseal?

Flatseal 是一个 Flatpak 应用,它为你提供了一个友好的用户界面来查看和改变你系统中所有 Flatpak 应用的权限。

它是一个优秀的小程序,每个应用的每个权限部分都有一个易于使用的切换按钮。下面是它的外观(图 1)。

Figure 1 – Flatseal App

你如何使用 Flatseal 来管理 Flatpak 的权限?

当打开 Flatseal 应用时,它应该在左边的导航栏列出所有的 Flatpak 应用。而当你选择了一个应用,它就会在右边的主窗口中显示可用的权限设置。

现在,对于每个 Flatpak 权限控制,当前值显示在切换开关中。如果该权限正在使用中,它应该被启用。否则,它应该是灰色的。

首先,要设置权限,你必须进入你的系统的应用。然后,你可以从权限列表中启用或禁用任何各自的控制。

其次,如果你想设置一个适用于你系统中所有 Flatpak 的全局控制,你可以在左上方选择“所有应用”并应用全局设置(图 2)。

Figure 2: Manage Flatpak Permission using Flatseal

这真是超级简单。不是吗?

使用 Flatseal 管理 Flatpak 权限的例子

让我们举个例子。

在我的系统中,我安装了上述 Flatpak(图 2)。让我们挑选 Telegram 桌面应用。目前,Telegram 桌面没有访问任何主目录或用户文件的权限(图 3)。

Figure 3: Telegram Desktop Flatpak App does not have permission to the home folders

现在,如果我想允许所有的用户文件和某个特定的文件夹(例如:/home/Downloads),你可以通过打开启用开关来给予它。请看下面的图 4。

Figure 4: Permission changed of Telegram Desktop to give access to folders

同样地,你可以启用或禁用你想要的权限。在内部,Flatseal 执行内部的 Flatpak 命令来实现这一点。

例如,上述情况可能转化为以下命令。

flatpak override org.telegram.desktop --filesystem=/home/Downloads

而要删除权限:

flatpak override org.telegram.desktop --nofilesystem=/home/Downloads

Flatseal 还有一个很酷的功能,它在用户特定的权限变化旁边显示一个小的警报图标(见图 4)。

我可以在所有的 Linux 发行版中安装 Flatseal 吗?

是的,你可以把 Flatseal 作为 Flatpak 安装在所有 Linux 发行版中。你可以使用 本指南 设置你的系统,并运行以下命令进行安装。或者,点击这里 直接启动特定系统的安装程序。

flatpak install flathub com.github.tchx84.Flatseal

结束语

我希望上面的 Flatpak 权限管理指南足够简单,让你了解并开始使用 Flatpak。它超级容易控制,使用起来也容易得多。另外,你可能想访问我们更多的 Flatpak 指南


via: https://www.debugpoint.com/2022/06/manage-flatpak-permission-flatseal/

作者:Arindam 选题:lkxed 译者:geekpi 校对:wxy

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

新版本的安卓系统让你对单个应用的访问和权限有了更精细的控制。这一点至关重要,因为许多应用曾经(正在)滥用系统权限。下载一个天气应用,它将要求访问你的通话记录,好像这与天气有什么关系一样。

为什么我在说安卓应用的权限?因为这可能与此应用的功能有关。

你可能已经知道 什么是 Flatpak。这些都是沙盒应用,可以选择访问系统资源,如文件存储、网络接口等。

就像 Android 一样,你可以控制 Flatpak 应用对系统资源的访问。默认情况下,这要用 Flatpak 命令,不是每个人都能适应它。

因此,有一个叫做 Flatseal 的小工具,可以让你在应用层面上管理和控制 Flatpak 的权限。

Flatseal

Flatseal

Flatseal 是一个图形化的工具,用于审查和修改你的 Flatpak 应用的权限。这使得事情比通过命令要容易得多。

Flatseal 会列出所有已安装的 Flatpak 应用。当你选择一个应用,你可以看到所有的权限。很容易发现已启用的权限,如果你愿意,你可以禁用它。

例如,Ksnip 是一个屏幕截图工具,但它也有联网权限,可以用 Imgur 等在线服务分享截图。如果你不需要它,你可以禁用它。

Control permissions of individual Flatpak apps

如果不出意外,看看一个应用有什么样的权限是很有趣的。例如,你可以看到 ksnip 有在后台运行的能力(这样你就可以用键盘快捷键进行截图)。

安装 Flatseal

既然管理的都是 Flatpak,那么 Flatseal 作为一个 Flatpak 包来使用也是合理的。

在 Fedora 上,如果已经添加 Flathub 仓库,你可以从软件中心安装它。

Installing Flatseal from the software center

否则,命令行总是可以帮助你。

flatpak install flathub com.github.tchx84.Flatseal

你真的需要控制权限吗?

这是一个主观的问题,完全取决于你。值得庆幸的是,到目前为止,桌面 Linux 应用并不像 Android 应用那样滥用权限。

一个普通用户通常不会去管这些事情,这完全没问题。

然而,如果你对这些事情过于谨慎,或者你找到一个很好的理由,Flatseal 提供了一个简单的选择。

你还应该小心你所改变的权限。如果你禁用了对应用的运作至关重要的权限,在使用应用时肯定会造成麻烦。

所以,总的来说,这不是一个普通用户要使用的东西。


via: https://itsfoss.com/flatseal/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

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

昨天发的一篇新闻点评中,提及了在 Ubuntu 21.04 中准备修复一个十多年的 Bug:将用户主目录的默认的“世界可写”权限取消,并对这条新闻吐槽了一番。

不料,这条新闻引来了一些意料之外的吐槽,大家在公众号、知乎、今日头条上看到这篇内容后,纷纷表示“世界可写”是机翻,是误读,应该翻译为“ 全局 Global ”。因此,我觉得有必要就此写点文字来说明一下。

说实话,我也是第一次看到“世界可写”这个翻译(这个翻译不是我发明的),初看之下有点诧异,但是细思之下,我认为,这个翻译还是颇有意思的。

传统的 Unix 权限 traditional Unix permissions 模型将用户分为三类:

  • 属主 Owner 用户 User 类(u):文件/目录的所有者
  • 群组 Group 类(g):除所有者之外的文件/目录所属用户组的成员
  • 其他 Other 类(o):“世界”上除以上二者外的其他人

对于 chmod 命令来说,我们有时候需要给这三类人都统一赋予一些权限,这种情况下,我们采用 a 来代表“ 全部 All ”,有时也称之为“ 世界 World ”。这在各种文献中

对于“ 世界 World ”这个词汇,除看起来有点不太寻常,但是我觉得,这是一种 Unix 的古典黑客精神的幽默,可能是隐喻 Unix 机器里面就是一个世界吧,如果你连 Unix 用户都没有,那你就不是这个世界的。

Unix 世界只是 Unix 的 世界 World ,从来不是 全球 Gloabl

最后,“世界可写”万万要不得。022 赛高!

知道如何控制用户对文件的访问是一项基本的系统管理技能。

了解 Linux 权限以及如何控制哪些用户可以访问文件是系统管理的一项基本技能。

本文将介绍标准 Linux 文件系统权限,并进一步研究特殊权限,以及使用 umask 来解释默认权限作为文章的结束。

理解 ls 命令的输出

在讨论如何修改权限之前,我们需要知道如何查看权限。通过 ls 命令的长列表参数(-l)为我们提供了有关文件的许多信息。

$ ls -lAh
total 20K
-rwxr-xr--+ 1 root root    0 Mar  4 19:39 file1
-rw-rw-rw-. 1 root root    0 Mar  4 19:39 file10
-rwxrwxr--+ 1 root root    0 Mar  4 19:39 file2
-rw-rw-rw-. 1 root root    0 Mar  4 19:39 file8
-rw-rw-rw-. 1 root root    0 Mar  4 19:39 file9
drwxrwxrwx. 2 root root 4.0K Mar  4 20:04 testdir

为了理解这些是什么意思,让我们将关于权限的输出分解为各个部分。单独理解每个部分会更容易。

让我们看看在上面的输出中的最后一行的每个组件:

drwxrwxrwx. 2 root root 4.0K Mar  4 20:04 testdir
第 1 节第 2 节第 3 节第 4 节第 5 节第 6 节第 7 节
drwxrwxrwx.rootroot

第 1 节(左侧)显示文件的类型。

符号类型
d目录
-常规文件
l软链接

lsinfo 页面完整列出了不同的文件类型。

每个文件都有三种访问方式:

  • 属主
  • 所有其他人 第 2、3 和 4 节涉及用户(属主)、组和“其他用户”权限。每个部分都可以包含 r(读取)、w(写入)和 x(执行)权限的组合。

每个权限还分配了一个数值,这在以八进制表示形式讨论权限时很重要。

权限八进制值
r4
w2
x1

第 5 节描述了其他替代访问方法,例如 SELinux 或文件访问控制列表(FACL)。

访问方法字符
没有其它访问方法-
SELinux.
FACL+
各种方法的组合+

第 6 节和第 7 节分别是属主和组的名称。

使用 chown 和 chmod

chown 命令

chown(更改所有权)命令用于更改文件的用户和组的所有权。

要将文件 foo 的用户和组的所有权更改为 root,我们可以使用以下命令:

$ chown root:root foo
$ chown root: foo

在用户名后跟冒号(:)运行该命令将同时设置用户和组所有权。

要仅将文件 foo 的用户所有权设置为 root 用户,请输入:

$ chown root foo

要仅更改文件 foo 的组所有权,请在组之前加冒号:

$ chown :root foo

chmod 命令

chmod(更改模式)命令控制属主、组以及既不是属主也不属于与文件关联的组的所有其他用户的文件许可权。

chmod 命令可以以八进制(例如 755644 等)和符号(例如 u+rwxg-rwxo=rw)格式设置权限。

八进制表示法将 4 个“点”分配给“读取”,将 2 个“点”分配给“写入”,将 1 个点分配给“执行”。如果要给用户(属主)分配“读取”权限,则将 4 分配给第一个插槽,但是如果要添加“写入”权限,则必须添加 2。如果要添加“执行”,则要添加 1。我们对每种权限类型执行此操作:属主、组和其他。

例如,如果我们想将“读取”、“写入”和“执行”分配给文件的属主,但仅将“读取”和“执行”分配给组成员和所有其他用户,则我们应使用 755(八进制格式)。这是属主的所有权限位(4+2+1),但组和其他权限的所有权限位只有 414+1)。

细分为:4+2+1=7,4+1=5 和 4+1=5。

如果我们想将“读取”和“写入”分配给文件的属主,而只将“读取”分配给组的成员和所有其他用户,则可以如下使用 chmod

$ chmod 644 foo_file

在下面的示例中,我们在不同的分组中使用符号表示法。注意字母 ugo 分别代表“用户”(属主)、“组”和“其他”。我们将 ugo+-= 结合使用来添加、删除或设置权限位。

要将“执行”位添加到所有权权限集中:

$ chmod u+x foo_file

要从组成员中删除“读取”、“写入”和“执行”:

$ chmod g-rwx foo_file

要将所有其他用户的所有权设置为“读取”和“写入”:

$ chmod o=rw

特殊位:设置 UID、设置 GID 和粘滞位

除了标准权限外,还有一些特殊的权限位,它们具有一些别的用处。

设置用户 ID(suid)

当在文件上设置 suid 时,将以文件的属主的身份而不是运行该文件的用户身份执行操作。一个好的例子passwd 命令。它需要设置 suid 位,以便更改密码的操作具有 root 权限。

$ ls -l /bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /bin/passwd

设置 suid 位的示例:

$ chmod u+s /bin/foo_file_name

设置组 ID(sgid)

sgid 位与 suid 位类似,操作是在目录的组所有权下完成的,而不是以运行命令的用户身份。

一个使用 sgid 的例子是,如果多个用户正在同一个目录中工作,并且目录中创建的每个文件都需要具有相同的组权限。下面的示例创建一个名为 collab_dir 的目录,设置 sgid 位,并将组所有权更改为 webdev

$ mkdir collab_dir
$ chmod g+s collab_dir
$ chown :webdev collab_dir

现在,在该目录中创建的任何文件都将具有 webdev 的组所有权,而不是创建该文件的用户的组。

$ cd collab_dir
$ touch file-sgid
$ ls -lah file-sgid
-rw-r--r--. 1 root webdev 0 Jun 12 06:04 file-sgid

“粘滞”位

粘滞位表示,只有文件所有者才能删除该文件,即使组权限允许该文件可以删除。通常,在 /tmp 这样的通用或协作目录上,此设置最有意义。在下面的示例中,“所有其他人”权限集的“执行”列中的 t 表示已应用粘滞位。

$ ls -ld /tmp
drwxrwxrwt. 8 root root 4096 Jun 12 06:07 /tmp/

请记住,这不会阻止某个人编辑该文件,它只是阻止他们删除该目录的内容(LCTT 译注:即删除目录下文件)。

我们将粘滞位设置为:

$ chmod o+t foo_dir

你可以自己尝试在目录上设置粘滞位并赋予其完整的组权限,以便多个属于同一组的用户可以在目录上进行读取、写入和执行。

接着,以每个用户的身份创建文件,然后尝试以另一个用户的身份删除它们。

如果一切配置正确,则一个用户应该不能从另一用户那里删除文件。

请注意,这些位中的每个位也可以用八进制格式设置:SUID = 4、SGID = 2 和 粘滞位 = 1。(LCTT 译注:这里是四位八进制数字)

$ chmod 4744
$ chmod 2644
$ chmod 1755

大写还是小写?

如果要设置特殊位时看到大写的 ST 而不是小写的字符(如我们之前所见),那是因为不存在(对应的)底层的执行位。为了说明这一点,下面的示例创建一个设置了粘滞位的文件。然后,我们可以添加和删除执行位以演示大小写更改。

$ touch file cap-ST-demo
$ chmod 1755 cap-ST-demo
$ ls -l cap-ST-demo
-rwxr-xr-t. 1 root root 0 Jun 12 06:16 cap-ST-demo

$ chmod o-x cap-X-demo
$ ls -l cap-X-demo
-rwxr-xr-T. 1 root root 0 Jun 12 06:16 cap-ST-demo

有条件地设置执行位

至此,我们使用小写的 x 设置了执行位,而无需询问任何问题即可对其进行设置。我们还有另一种选择:使用大写的 X 而不是小写的,它将仅在权限组中某个位置已经有执行位时才设置执行位。这可能是一个很难解释的概念,但是下面的演示将帮助说明它。请注意,在尝试将执行位添加到组特权之后,该位没有被设置上。

$ touch cap-X-file
$ ls -l cap-X-file
-rw-r--r--. 1 root root 0 Jun 12 06:31 cap-X-file
$ chmod g+X cap-X-file
$ ls -l cap-X-file
-rw-r--r--. 1 root root 0 Jun 12 06:31 cap-X-file

在这个类似的例子中,我们首先使用小写的 x 将执行位添加到组权限,然后使用大写的 X 为所有其他用户添加权限。这次,大写的 X设置了该权限。

$ touch cap-X-file
$ ls -l cap-X-file
-rw-r--r--. 1 root root 0 Jun 12 06:31 cap-X-file
$ chmod g+x cap-X-file
$ ls -l cap-X-file
-rw-r-xr--. 1 root root 0 Jun 12 06:31 cap-X-file
$ chmod o+X cap-X-file
ls -l cap-X-file
-rw-r-xr-x. 1 root root 0 Jun 12 06:31 cap-X-file

理解 umask

umask 会屏蔽(或“阻止”)默认权限集中的位,以定义文件或目录的权限。例如,umask输出中的 2 表示它至少在默认情况下阻止了文件的“写入”位。

使用不带任何参数的 umask 命令可以使我们看到当前的 umask 设置。共有四列:第一列为特殊的suidsgid 或粘滞位而保留,其余三列代表属主、组和其他人的权限。

$ umask
0022

为了理解这意味着什么,我们可以用 -S 标志来执行 umask(如下所示)以解释屏蔽位的结果。例如,由于第三列中的值为 2,因此将“写入”位从组和其他部分中屏蔽掉了;只能为它们分配“读取”和“执行”。

$ umask -S
u=rwx,g=rx,o=rx

要查看文件和目录的默认权限集是什么,让我们将 umask 设置为全零。这意味着我们在创建文件时不会掩盖任何位。

$ umask 000
$ umask -S
u=rwx,g=rwx,o=rwx

$ touch file-umask-000
$ ls -l file-umask-000
-rw-rw-rw-. 1 root root 0 Jul 17 22:03 file-umask-000

现在,当我们创建文件时,我们看到所有部分的默认权限分别为“读取”(4)和“写入”(2),相当于八进制表示 666

我们可以对目录执行相同的操作,并看到其默认权限为 777。我们需要在目录上使用“执行”位,以便可以遍历它们。

$ mkdir dir-umask-000
$ ls -ld dir-umask-000
drwxrwxrwx. 2 root root 4096 Jul 17 22:03 dir-umask-000/

总结

管理员还有许多其他方法可以控制对系统文件的访问。这些权限是 Linux 的基本权限,我们可以在这些基础上进行构建。如果你的工作为你引入了 FACL 或 SELinux,你会发现它们也建立在这些文件访问的首要规则之上。


via: https://opensource.com/article/19/8/linux-permissions-101

作者:Alex Juarez 选题:lujun9972 译者:wxy 校对:wxy

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

前一篇文章介绍了 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中国 荣誉推出