为什么 Gnome 3 ~/.cache/gnome-control-center 有奇怪的权限?

为什么 Gnome 3 ~/.cache/gnome-control-center 有奇怪的权限?

当我执行某项finddu某项操作时,~/.cache出现错误:

$ ls ~/.cache/gnome-control-center
ls: cannot open directory /home/user1/.cache/gnome-control-center: Permission denied

它具有奇怪的权限,这会阻止所有者读取或导航到目录(但用户的组可以,如果是共享的):

$ ls -ld ~/.cache/gnome-control-center
d-w-r-xr-T. 2 user1 user1 4096 Sep 30 16:51 /home/user1/.cache/gnome-control-center

这开始看起来像一个保管箱 - 只写 - 但它的应用不一致,因此“组”和“其他”将其视为只读而不是只写。假设(在较旧的企业环境中)您有一个默认组user,那么(因为拒绝优先,并且权限是从左到右读取的),任何人都可以读取该目录除了主人。然而,他们不能,因为父级.cache只能由所有者读取和导航。

我确认过了这发生在其他人身上。我想我在问两个问题:

  1. 是否有记录此权限愚蠢的原因?
  2. 有什么可能的原因将所有者锁定在存储在他们自己的主目录中的目录之外?

答案1

这是一个错误并在 GNOME 3.30 中修复,请参阅gitlab.gnome.org/GNOME/gnome-control-center/-/issues/49

0700该问题是由于用户目录权限的原始八进制值不受支持而导致的,该值被错误地转换为十进制700。要解决此问题,需要将该值写入为字符串'0700'meson.build

来源:github.com/GNOME/gnome-control-center/commit/37a6b940cb83d97b808da77f397e34100beb263f

构建:修复 config.h 中的“USER_DIR_MODE”值

meson 使用原始八进制值定义“USER_DIR_MODE”,在创建用户的配置目录时用作默认权限。

但是,介子不支持原始八进制值[0],因此定义会丢失初始“0”值。因此,该目录是使用错误的权限创建的。

这已更改为使用八进制值作为介子中的字符串,因此定义具有正确的值。

修复 #49

[0]介子构建/介子#2047

相关内容