繁体   English   中英

Linux中的文件锁定

[英]File Locking in Linux

第一个问题:

用户可以锁定Linux / Unix中的文件以进行读写吗?

第二个问题:

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

第三个问题:

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

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

还有一件事,没有cp权限。 我刚刚才发现。

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

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

那是个主意吗?

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

我可能会误会,因为该主题与C / C ++版本11有关。也许微软会在2013年更新其Visual Studio,并在以后的几年中继续这样做。

约翰·DB

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

光学媒体有两个主要的文件系统:

  • ISO 9660 ,旧的CD格式。

    此格式的原始版本完全不支持权限。 访问控制是到内核,它决定哪一个权限集分配到光盘上的所有文件集体

    Rock Ridge扩展添加了与POSIX兼容的权限方案,但这存在很多问题:

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

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

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

      关于在不受单个管理员或组织管理的系统上唯一可以依靠的事情是,如果将文件标识为由用户ID 0和组ID 0拥有,则该文件如果设置为440或,则将对root只读。 400

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

      在我去年的测试中 ,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。

最重要的是,您试图忽略数据安全性的关键原则:物理访问是完全访问。 使人们远离系统的不可避免的前提是限制他们对系统的物理访问。 这意味着您必须让他们来获取文件,而不是将它们运送到光盘中,并希望它们的OS内核以该光盘上的1和0来满足您的要求。

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

sudo chmod 000 <file>

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

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

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

如果您拥有vim软件包,则可以加密文件

:set键=您的键

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

简洁版本:

1)是的

2)没有

3)参见问题2的长答案。

较长版本:

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM