how to set the default permission for dolphin right click created file or folder

Operating System: Kubuntu 24.04
KDE Plasma Version: 5.27.12
KDE Frameworks Version: 5.115.0
Qt Version: 5.15.13
Kernel Version: 6.17.0-20-generic (64-bit)
Graphics Platform: X11
Dolphin Version: 23.08.5

right click mouse at blank, create new file or folder, then we got:

  • file with permission 664
  • folder with permission 775

and files download from edge or firefox also have the same permission 664.

But what I want is the file with permission 644, folder with permission 755. I set umask

in .bashrc and .zshrc and it works well for terminal operation, such as touch and mkdir.

I search bing.com and arch wiki about umask, got some idea on how to set umask for KDE/Plasma, and I try:

  • write session optional pam_umask.so umask=022 to /etc/pam.d/login NOT WORK
  • create drop-in for systemd service plasma-dolphin.service NOT WORK
# /usr/lib/systemd/user/plasma-dolphin.service.d/umask.conf
[Service]
UMask=0022
  • create drop-in for systemd service user@.service NOT WORK
# /usr/lib/systemd/system/user@.service.d/umask.conf
[Service]
UMask=0022
  • create drop-in for systemd service plasma-plasmashell.service NOT WORK
# /usr/lib/systemd/user/plasma-plasmashell.service/umask.conf
[Service]
UMask=0022

Please, tell me if I’ve forgot something or is there a config file can do it ?

So does any one know how to set default permission created by dolphin right-click ?

Or is it a bug of dolphin or something others ?

Thanks.

Could adding preferred umask, fmask and dmask values to supersede the defaults to /etc/fstab or /etc/udisks2/mount_options.conf work?

Don’t remember how it was handled in Plasma 5. You can run systemd-cgls|grep dolphin, and if the result looks like app-org.kde.dolphin@<long hex number>.service, then you can put the override file in ~/.config/systemd/user/app-org.kde.dolphin.service.d for Dolphin, or app-.service.d for all apps.

here is the fstab, is this has some problems ?

## Disk Partition                               Mount Point   FS Type   Mount Options                         dump  fsck
PARTUUID=c4efee92-****-****-****-************   /boot/efi     vfat      defaults                              0     2
PARTUUID=0b024420-****-****-****-************   /             ext4      defaults                              0     1
tmpfs                                           /tmp          tmpfs     defaults,noatime,mode=1777            0     0

PARTUUID=b3a01835-****-****-****-************   none          swap      defaults                              0     0
#/swapfile                                      swap          swap      defaults                              0     0

PARTUUID=b1bd84c9-****-****-****-************   /me           ext4      defaults                              0     0
PARTUUID=d7a8263b-****-****-****-************   /me/tech      ntfs3     defaults,uid=1000,gid=1000            0     0

I have try the both, change settings, reboot, but not work yet ! Do you have any other ideas ?

systemctl --user status app-.service
# Unit app-.service could not be found.

systemctl --user status app-org.kde.dolphin.service
# Unit app-org.kde.dolphin.service could not be found.

Yes, after systemd-cgls|grep dolphin the result look like app-org.kde.dolphin@<hex>.service

I have try the both,

  • ~/.config/systemd/user/app-org.kde.dolphin.service.d/umask.conf, reboot, not work
  • ~/.config/systemd/user/app-.service.d/umask.conf, reboot, not work

Do you have any other ideas ? And I do not find related systemd service on the system ?

systemctl --system status app-.service
# Unit app-.service could not be found.

systemctl --system status app-org.kde.dolphin.service
# Unit app-org.kde.dolphin.service could not be found.

systemctl --user status app-.service
# Unit app-.service could not be found.

systemctl --user status app-org.kde.dolphin.service
# Unit app-org.kde.dolphin.service could not be found.

My bad. Should be app-org.kde.dolphin@.service.d. For more info:

And app-.service.d works for me. No idea why it isn’t for you.

They are not actual services, but “templates”, so you can’t status them. Only the actual app-org.kde.dolphin@<hex>.service can be used with systemctl --user.

If you want to modify the default behavior, I guess you need to add whatever you want here. For example, if you want the file and folder permissions in ext4 partitions to be different from the defaults, you need to add the corresponding options (umask, fmask, dmask etc.) after the defaults to supersede the corresponding default values.

Got it, I know that, but what you said is not related to what I asked, and still thanks for you replies!

Still not work yet, and thanks for your response! I realy have no idea what to do ….

# ~/.config/systemd/user/app-org.kde.dolphin@.service.d
% cat umask.conf
[Service]
UMask=0022

I double checked, and found there is no @ sign and suffix is not service it is scope

% systemd-cgls | grep dolphin
│   │ │ ├─app-org.kde.dolphin-c33aa16a4a2b41c1bd97f67cf7adf22c.scope
│   │ │ │ └─2010 /usr/bin/dolphin

% systemd-cgls | grep konsole
│   │ │ ├─app-org.kde.konsole-5e6ffaf3f7fc48bb92906d9a3ef1ac3c.scope
│   │ │ │ ├─2149 /usr/bin/konsole


% ps -u charlie -o pid= | xargs -I % sh -c 'echo PID=%, $(grep "^Umask:" "/proc/%/status"), Process=$(ps -w -p % -o cmd=)'
...
PID=1508, Umask: 0077, Process=/usr/bin/fcitx5 -d
...
PID=2010, Umask: 0002, Process=/usr/bin/dolphin
PID=2149, Umask: 0002, Process=/usr/bin/konsole
PID=2159, Umask: 0022, Process=/bin/zsh

some command failed from Limit Application Memory Usage with systemd

% systemctl --version
systemd 255 (255.4-1ubuntu8.15)
+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -BPF_FRAMEWORK -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified

% systemd-cgls | grep dolphin
│   │ │ ├─app-org.kde.dolphin-ec0728a0337f4efb827189c002f1918f.scope
│   │ │ │ └─7284 /usr/bin/dolphin

% systemctl --user cat app-org.kde.dolphin-ec0728a0337f4efb827189c002f1918f.scope
# /run/user/1000/systemd/transient/app-org.kde.dolphin-ec0728a0337f4efb827189c002f1918f.scope
# This is a transient unit file, created programmatically via the systemd API. Do not edit.
[Scope]
Slice=app.slice

[Unit]
Description=Dolphin - File Manager
SourcePath=/usr/share/applications/org.kde.dolphin.desktop

% systemd-cgls | grep konsole
│   │ │ ├─app-org.kde.konsole-be56c53e215f490085d1f785691327d4.scope
│   │ │ │ ├─ 6916 /usr/bin/konsole

% systemctl --user show app-org.kde.konsole@*.service
zsh: no matches found: app-org.kde.konsole@*.service

% systemctl --user show 'app-org.kde.konsole@*.service'
# output nothing

If it’s scope, then unfortunately, this approach won’t work, as the “UMask=” option is only for services.

You might try other approaches. E.g., the pam_umask.so one. Your display manager probably doesn’t use /etc/pam.d/login, but /etc/pam.d/sddm{-autologin}, if it’s SDDM.

Yes, it is SDDM

% systemctl status display-manager.service
● sddm.service - Simple Desktop Display Manager
Loaded: loaded (/usr/lib/systemd/system/sddm.service; enabled; preset: enabled)
Active: active (running) since Wed 2026-04-22 18:50:40 CST; 11min ago
Docs: man:sddm(1)
man:sddm.conf(5)
Process: 1195 ExecStartPre=/bin/sh -c [ "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/bin/sddm" ] (code=exited, status=0/SUCCESS)
Main PID: 1198 (sddm)
Tasks: 4 (limit: 18669)
Memory: 164.3M (peak: 165.7M)
CPU: 42.960s
CGroup: /system.slice/sddm.service
├─1198 /usr/bin/sddm
└─1201 /usr/lib/xorg/Xorg -nolisten tcp -background none -seat seat0 vt2 -auth /run/sddm/xauth_fImwEL -noreset -displayfd 16

I put session optional pam_umask.so umask=022 to /etc/pam.d/sddm-autologin

but still not working ….

% pwd
/etc/pam.d
% ls
chfn  chpasswd  chsh  common-account  common-auth  common-password  common-session  common-session-noninteractive  cron  cups  login  newusers  other  passwd  ppp  runuser  runuser-l  samba  sddm  sddm-autologin  sddm-greeter  su  sudo  sudo-i  su-l

Should be /etc/pam.d/sddm if you are not using autologin.

Not work yet! …

% systemctl status user@1000.service
● user@1000.service - User Manager for UID 1000
Loaded: loaded (/usr/lib/systemd/system/user@.service; static)
Drop-In: /usr/lib/systemd/system/user@.service.d
└─10-login-barrier.conf, timeout.conf, umask.conf
Active: active (running) since Wed 2026-04-22 22:34:38 CST; 12min ago
Docs: man:user@.service(5)
Main PID: 1367 (systemd)
Status: "Ready."
Tasks: 438
Memory: 2.5G (peak: 2.7G)
CPU: 3min 47.134s
CGroup: /user.slice/user-1000.slice/user@1000.service
├─app.slice
...
│ ├─app-org.kde.dolphin-1d9e85f2e64343dfb321e16dde014a48.scope
│ │ ├─4148 /usr/bin/dolphin
│ │ ├─4162 /lib/x86_64-linux-gnu/libexec/kf5/kioslave5 /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kio/tags.so tags "" local:/run/user/1000/dolphinDvzzxl.1.kioworker.socket
│ │ ├─4164 /lib/x86_64-linux-gnu/libexec/kf5/kioslave5 /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kio/kio_trash.so trash "" local:/run/user/1000/dolphiniVAUoB.2.kioworker.socket
│ │ └─4190 /lib/x86_64-linux-gnu/libexec/kf5/kioslave5 /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/kio/thumbnail.so thumbnail "" local:/run/user/1000/dolphinUTgmUt.8.kioworker.socket
...
Apr 22 22:44:30 LY9KH plasmashell[4148]: true
Apr 22 22:44:30 LY9KH plasmashell[4148]: actions!!!
Apr 22 22:44:32 LY9KH plasmashell[4148]: true
Apr 22 22:44:32 LY9KH plasmashell[4148]: actions!!!
Apr 22 22:44:52 LY9KH plasmashell[4148]: true
Apr 22 22:44:52 LY9KH plasmashell[4148]: actions!!!
Apr 22 22:45:41 LY9KH systemd[1367]: Started app-userapp\x2dThunderbird\x2dOBL5N3-c102a6e1270e4566ad77811b78c8df48.scope - Thunderbird.
Apr 22 22:45:52 LY9KH systemd[1367]: app-userapp\x2dThunderbird\x2dOBL5N3-c102a6e1270e4566ad77811b78c8df48.scope: Consumed 9.524s CPU time.
Apr 22 22:45:54 LY9KH plasmashell[1666]: org.kde.klipper: Invalid or non-local url for preview:  QUrl("user@1000.service")
Apr 22 22:46:28 LY9KH plasmashell[1666]: org.kde.klipper: Invalid or non-local url for preview:  QUrl("user@1000.service")

% systemctl --user --property=UMask show user@1000.service
UMask=0002

% systemctl --user --property=UMask show app-org.kde.dolphin
UMask=0002

I put drop-in here /usr/lib/systemd/system/user@.service.d/umask.conf, and it loaded, BUT the restult is not working also!

I did a code review, and this should work, that is umask should be used by dolphin, we have a unittest for this.
I could be missing something, but this has to be more subtitle.

You can test in a terminal the umask and outside of dolphin using kioclient copy or kioclient mkdir.

OK, I will dobule check again.

But I do not understand what you said, can you explain more ?

Not work yet! Do you have any ideas ?

Is it the problem of dolphin or related to systemd ?

On fresh minimal install of kubuntu-24.04.4-desktop-amd64 is also has the same problem ?

Is anyone other install the system and do not have the problem, it is just happens for me ?

It is so weird ….