1

第一个问题:

用户可以在 Linux/Unix 中锁定文件以防止读取或写入吗?

第二个问题:

用户可以将锁定的文件刻录到任何光学介质上吗?之后,它会与任何操作系统对应吗?

第三个问题:

如果文件被锁定以进行读取或写入并被刻录到任何光学介质上,用户可以尝试撕掉它吗?如果是这样,那么之后,任何操作系统内核是否可以创建一条错误消息,拒绝除 root 用户之外的任何用户执行该任务?

如果文件被阻止读取,则用户无法复制、打开或读取它。如果文件被阻止写入,则用户可以在桌面内移动它,但不能将其刻录到任何光学介质上。

还有一件事,没有cp权限这样的东西。我刚刚才发现。

由于我精通 C/C++ 编程,如果任何操作系统内核不支持我要说的内容,我可能会在 C/C++ 中创建一个库。cC 之后,如果可能,将其制作为库文件并将其包含在 C/C++ 库中。

为了执行该任务,我必须将所有变量声明为静态数据类型,以便在操作系统内核响应它时保留它。

那会是一个想法吗?

另一个想法是实现不可复制库,它只兼容 Embarcadero C/C++ 编译器,不是免费软件或共享软件。用户必须从他们的网站在线购买。

我可能弄错了,因为该主题与 C/C++ 版本 11 相关。也许 Microsoft 更新了 2013 年的 Visual Studio,并将在以后继续这样做。

约翰数据库

4

4 回答 4

3

您的整体问题的答案是“不”。您可以在光学媒体上获得 POSIX 权限,但是一旦您开始分发可移动媒体,有效的数据安全性就几乎消失了。

有两种主要的文件系统用于光学媒体:

  • ISO 9660,旧的 CD 格式。

    这种格式的原始版本根本不支持权限。访问控制由内核决定,它集体决定将哪个单一权限集分配给磁盘上的所有文件。

    Rock Ridge 扩展添加了与POSIX 兼容的权限方案,但这充满了问题:

    1. 您可以在 Linux 中提供norockmount 选项以使其忽略权限。

      请记住,这是一种可移动的光学介质。如果您将光盘发送给您无法控制的人,或者最终用户可以物理访问光盘驱动器,他们将能够破坏您的许可方案。

    2. 权限基于用户和组 ID,而不是名称,因此如果您希望目标系统上的用户和组具有某些访问权限,那么您将遇到同步用户和组表的老问题。

      root在不受单个管理员或组织管理的系统中,您唯一可以依靠的是,如果将其设置为模式 440 或 400 ,则标记为用户 ID 0 和组 ID 0 拥有的文件将是只读的.

    3. 非 Linux 操作系统会以不同的方式解释权限。

      在我去年的测试中,Windows 完全忽略了光盘权限。

      默认情况下,当您将光盘插入计算机并让它自动挂载时,OS X 也会默认忽略光盘权限。我想您可以通过手动安装光盘使操作系统服从权限,但这根本不安全。

      这涉及到上面的问题 #1,因为这意味着击败您的权限方案就像将光盘放入 Mac 或 Windows 盒子中一样简单。

    4. 您询问了关于光盘翻录的问题,此时所有权限都会消失,无论操作系统如何。翻录的假设是您对光盘具有完全的读取权限,这意味着您对数据具有完全的访问权限。从那时起,您可以对数据做任何您想做的事情。

  • UDF是 CD-RW、DVD 和蓝光媒体 ISO 9660 的有效替代品。

    UDF 从一开始就具有 POSIX 文件权限,因此从这个意义上说,它就像带有 Rock Ridge 扩展的 ISO 9660。不幸的是,Linux 实现并不安全,因为您可以使用它来挂载光盘,uid=ignore,gid=ignore它的行为就像norock使用 ISO 9660 光盘一样。

    上述所有其他内容同样适用于 UDF。

底线是您试图无视数据安全的关键原则:物理访问是完全访问。将人们拒之门外的一个不可避免的先决条件是限制他们对系统的物理访问。这意味着您必须让他们来找您获取文件,而不是向他们发送光盘并希望他们的操作系统内核使用该光盘上的 1 和 0 完成您想要的操作。

于 2013-10-20T21:45:03.297 回答
2

您可以通过运行以下命令锁定文件以防止任何用户使用它:

sudo chmod 000 <file>

这意味着所有者、组和其他人无法读取、写入或执行文件。请注意,root 始终可以将文件权限设置回其他权限,因此在运行该命令后文件不会永远锁定。

通常无法刻录文件,因为您无法从中读取文件,即使您可以,在将文件写入 CD 后也无法正确保留文件权限,因为该文件系统 (CDFS) 不支持他们。

您可以在此处了解有关文件权限的更多信息。

于 2013-10-20T20:34:25.217 回答
1

如果你有 vim 包,那么你可以加密文件

:set key=your_key

这样下次打开文件时它会要求输入密钥

于 2013-10-21T18:52:51.687 回答
0

精简版:

1) 是的

2) 没有

3) 见问题 2 的长答案。

更长的版本:

当然。用户拥有文件的所有权。当然,这些都可以修改。文件具有读取、写入和执行三种不同的权限“类型”。每个文件都为三个不同的组设置或取消设置这些属性。用户、组和所有人。

此修改是使用 chmod 命令完成的,通常后跟一串字符,或 3 位八进制符号 (0xxx)。

我建议查看手册页中的 chmod 命令,因为它们涵盖了如何非常有效地使用它。

至于第二个问题,没有。不幸的是,光学媒体使用的文件格式实际上是光盘上的数据转储。文件系统支持权限,它不是文件本身的实际属性。因此,光盘只是数据的可靠副本,没有什么特别的权限。这意味着,无论何时在任何系统上使用该光盘,权限始终是完全开放的。

编辑:只是为了澄清。如果您没有文件的读取权限,则无法将文件刻录到光盘。抱歉,如果这引起了任何混乱。

于 2013-10-20T20:37:30.340 回答