生活哲学

如何使用 Sticky Bit 在 Linux 中管理共享文件夹中的文件

自推出以来,Linux 一直被设计为支持多用户环境。对于一个工作系统上的许多用户和组来说,在同一个组中的用户之间经常会遇到共享文件夹,并且文件夹中的文件共享也会出现问题。

在这篇文章中,TipsMake.com 讨论了如何使用粘滞位来微调共享文件夹上的文件访问。

为了便于说明,文章有一个系统有 3 个用户 - john1, john2john3 ,它们都是共同组的成员。

假设 'john1' 创建一个名为 'shared-dir' 的新目录,该目录在所有 之间共享johns 用户

通过ls命令我们可以查看'shared-dir'的权限,理解如下:只有 'john1' 可以读取内容以及写入目录。因为我们使用的是共享文件夹,所以目标是让组中的所有用户写入 'shared-dir'。

为此,我们将使用 chmod 命令修改权限。我们将为所有 johns 用户添加写入权限,如下所示。

<图> Linux下如何使用Sticky Bit管理共享文件夹上的文件的图1
johns 组的所有用户的写入权限

我们可以看到 'shared-dir' 的更新权限,如下所示。黄色下划线部分表示 johns 组已被授予写入权限。

将文件添加到共享文件夹

现在,john1 将两个文件(j1_file1.txtj1_file2.txt)添加到'共享目录'。

为便于理解,文件名前两个字符与用户名同义。

同样,john2也可以写入'shared-dir'目录。

目前'shared-dir'中有4个文件。

<图> Linux下如何使用Sticky Bit管理共享文件夹上的文件的图2
“共享目录”中有 4 个文件

当前设置有问题吗?

文件 j1_file1.txt 由文件所有者 john1 创建。现在,john2 登录并尝试删除此文件,他将能够这样做。

'john1' 是文件所有者,但 'john2' 可以删除它,因为写入权限授予所有johns.

的成员

这种情况并不理想。我们希望所有用户都能够写入目录,但只有文件所有者才能删除文件。如何实现?

引入粘性位

粘滞位是一种特殊权限,在整个组的写权限文件夹上设置。该位确保组的所有成员都可以写入目录,但只有文件创建者或文件所有者才能删除它。

带有标志- tchmod 命令可用于在文件夹上放置粘滞位。

更新权限见下图。

<图> Linux下如何使用Sticky Bit管理共享文件夹上的文件图3
权限更新

现在,如果 'john2' 试图删除 'john1 创建的文件 'j1_file2.txt' ', 不允许该操作。

如果你删除了其他人的可执行权限,那么'others'部分用大写字母表示文件夹中是否存在粘滞位的权限字符串。文件夹上粘滞位的行为保持不变。

<图> 如何使用 Sticky Bit 管理共享文件夹中的文件的图 4Linux
文件夹上粘位的存在用大写字母表示

chmod 命令的变体

chmod 命令的数字形式也可用于在文件夹上放置粘滞位。

 chmod nxyz 

内:

  1. n=1 :指的是粘性位。 n的其他值参考其他特殊权限。
  2. x :文件所有者的权利。
  3. y :授予有权访问文件的组的权限。
  4. z:他人的权利

要在 'shared-dir' 上设置粘滞位,请使用以下命令:

 chmod 1755 shared-dir 

该命令产生的结果与在现有默认权限上使用 + t 的结果相同。

粘位的使用只适用于文件夹,用于文件时没有意义。

相关资讯

评论

回复