Gnome3、Systemd 和 umask

Gnome3、Systemd 和 umask

我尝试配置 Nautilus、GEdit 和其他 Gnome 应用程序如何设置新文件和目录权限(002 而不是默认的 022)。

在阅读帖子并尝试之后,我找到了一个“有效”的解决方案。所有用户都使用这些设置:

mkdir /etc/systemd/user/dbus.service.d/
mkdir /etc/systemd/user/gnome-terminal-server.service.d/
echo -e "[Service]\nUMask=002\n" > /etc/systemd/user/dbus.service.d/override.conf
echo -e "[Service]\nUMask=002\n" > /etc/systemd/user/gnome-terminal-server.service.d/override.conf

阅读了更多帖子后,我删除了这些文件和目录并尝试:

mkdir /etc/systemd/system/[email protected]/
echo -e "[Service]\nUMask=002\n" > /etc/systemd/system/[email protected]/override.conf

我这样做是因为 dbus.service 和 gnome-terminal-server.service 都在[电子邮件受保护](systemd-cgls):

Control group /:
-.slice
├─user.slice
│ ├─user-1000.slice
│ │ └─[email protected]
│ │   ├─gnome-terminal-server.service
│ │   │ ├─1763 /usr/lib/gnome-terminal/gnome-terminal-server
│ │   │ ├─1771 bash
│ │   ├─dbus.service
│ │   │ └─1973 /usr/bin/nautilus --gapplication-service

不幸的是,在我的终端中执行 umask 打印 0022 而不是 0002,但 GEdit 和 Nautilus 使用 002(我创建了一个新的文本文件和一个新目录)。

我缺少什么?

答案1

至少在 Fedora 上,bash 会覆盖 umask/etc/bashrc

答案2

我至少在 Fedora 31 上有解决方法:

sudo vi /etc/profile.d/umask.sh
umask <your_umask>

sudo vi /etc/login.defs
UMASK <your_umask>

sudo vi /usr/local/bin/systemd-user
/usr/lib/systemd/systemd --user

sudo chmod a+x /usr/local/bin/systemd-user

sudo vi /usr/lib/systemd/system/[email protected]
ExecStart=-/usr/local/bin/systemd-user

它在“systemd --user”启动的所有 gnome 应用程序中启用 umask,并在 gnome-terminal 中启用 umask。

相关内容