可以std::filesystem::permissions更改安全文件权限



我一直在尝试std::文件系统,我发现了权限函数,它允许您更改用户对文件的访问权限。这似乎是一件坏事,因为任何人都可以运行程序并访问不应该访问的文件。它就是这样工作的吗?任何程序都可以访问任何文件并更改其权限。或者程序只能更改它"拥有"的文件的权限?

操作系统内核负责实施访问控制,这种实施适用于所有程序,无论它们使用什么API。在类Unix操作系统上,进程只能在以下情况下更改文件权限:

  • 进程的有效用户ID与文件的所有者匹配,或者
  • 进程具有CCD_ 1能力(其通常仅由根持有(

因此,当编译和运行使用std::filesystem::permissions的程序时,它会受到上述限制,并且不能随意干扰其他用户文件的权限。试图违反上述限制的对std::filesystem::permissions的调用将不会成功,并且(希望(将报告此处所述的错误。

最新更新