gpt4 book ai didi

c - Linux 中的文件锁定

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:44 29 4
gpt4 key购买 nike

第一个问题:

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

第二个问题:

用户能否将锁定的文件刻录到任何光学介质上?之后会不会对应任何操作系统?

第三个问题:

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

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

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

由于我精通 C/C++ 编程,如果任何操作系统内核不支持我想说的内容,我可能会用 C/C++ 创建一个库。cc之后,如果可能的话,把它做成一个库文件,并包含在C/C++库中。

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

这会是个主意吗?

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

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

约翰数据库

最佳答案

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

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

  • ISO 9660 ,旧的 CD 格式。

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

    Rock Ridge extensions添加了一个 POSIX 兼容的权限方案,但这充满了问题:

    1. 你可以给norock mount option在 Linux 中使其忽略权限。

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

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

      关于不受单个管理员或组织管理的跨系统,您唯一可以指望的是标记为用户 ID 0 和组 ID 0 拥有的文件对于 root< 是只读的 如果设置为模式 440 或 400。

    3. 非 Linux 操作系统对权限的解释不同。

      在我的testing of this last year , Windows 完全忽略光盘权限。

      默认情况下,当您将光盘插入计算机并让它自动安装时,OS X 也会默认忽略光盘权限。我想您可以通过手动安装光盘让操作系统遵守权限,但这实际上一点安全性都没有。

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

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

  • UDF , CD-RW、DVD 和 BluRay 媒体的 ISO 9660 的有效替代品。

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

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

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

关于c - Linux 中的文件锁定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19482508/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com