为什么 ArchLinux 在卸载软件包后会保留一些用户/组?

Eug*_*ash 15 security users arch-linux permissions files

我注意到postgresql在 ArchLinux 中卸载软件包后,postgres用户和组不会自动删除。其他一些包也是如此。进一步调查这一点,我遇到了这个页面,其中指出:

此处列出的软件包使用userdel/groupdel删除它们创建的用户。这些不应被自动删除,因为如果任何文件被遗留在此所有权下,它会带来安全风险。

我想知道为什么保留具有此所有权的文件会带来安全风险?

Tom*_*unt 19

这是一个安全风险,因为 FS 中的文件所有权不是通过符号名称存储的,而是通过 UID 和 GID 存储的。如果用户被删除并且文件仍归该用户所有,则在所有者权限下无法访问这些文件。但是,如果稍后创建了分配了相同 UID 的不同用户,则该用户将获得文件的所有权。由于将文件所有权用作安全机制的方式多种多样,因此这可能存在安全风险;最简单的形式是机密信息(例如 SSH 密钥id_rsa等,wi-fi 身份验证信息wpa_supplicant.conf)可能泄露给新用户。

  • 此外,如果旧用户的任何可执行文件被 setuid 或使用 suEXEC 以使得未经授权的用户可以作为该用户运行程序,新用户也可能面临风险。 (7认同)