![Gnome3、Systemd 和 umask](https://linux22.com/image/126010/Gnome3%E3%80%81Systemd%20%E5%92%8C%20umask.png)
我尝试配置 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。