如果我有一个具有如下权限和所有权的文件:
-rw------- 1 root root
,那么该文件是否加密?
我之所以问这个问题,是因为我想知道该文件是如何真正受到保护而不被读取为纯字节,然后被某些非 root 用户或攻击者重建。
答案1
此文件加密了吗?
不会。文件仍是原来的文件。如果有人重新启动进入实时会话,则任何重新启动的用户都可以看到该文件。如果有人取出硬盘并将其安装到他们作为管理员的另一个系统中,情况也是如此。
无论您使用何种方法,加密文件都是无法访问的。
所做-rw------- 1 root root
的就是让文件可由“root”用户读写,而不能由“root”组和“其他”用户读写。这非常严格,但如果您不想让别人窥探它,那就不够了。
防止任何人访问系统的唯一有效方法是不将文件存储在该系统上。
答案2
root
不,仅仅因为一个文件归例如或与您不同的用户所有,并不意味着对其进行加密。
根据文件所有者、组和其他用户所设置的权限,系统将允许或拒绝用户以特定方式访问文件。当然,这种保护仅在系统运行并控制所有文件 I/O 时对其他进程有效。您只需启动不同的操作系统并安装磁盘即可读取任何文件。
答案3
简而言之,不。文件所有权和访问权限是一种访问控制。加密和访问控制是正交(此处表示“独立”)概念。两者都是实现/执行的方法授权。
加密
意味着只有拥有解密密钥的代理才能访问文件或数据对象的解密“纯文本”。此访问可以(暂时)延长对于其他代理,例如在内存中保存解密密钥的同一系统的用户。
访问控制
意味着一个权威机构,例如在计算机上运行的操作系统,决定谁对哪种资源(可以是文件、数据对象或其他东西)获得何种访问权限。
他们为什么是独立的?
操作系统可能知道如何解密加密数据对象以获取其纯文本的访问权限,但这并不意味着它将此访问权限扩展到所有用户。它通常使用访问控制数据库来决定将访问权限扩展到谁(如果有的话)。
相反,用户可能有权访问加密数据集,但由于缺乏有效的解密密钥,无法理解它,即无法访问其纯文本。(目前,Ubuntu 附带的任何文件系统和文件系统工具都无法实现这一点,但此类功能正在为开箱即用的 Ubuntu 开发中,以新的 ext4 功能的形式出现,并且已在其他文件系统(例如 ZFS 和 NTFS)中可用,尽管不一定在 Linux 上可用。)