обзор иерархии файловой системы (File system hierarchy overview)
UNPRIVILEGED WRITE ACCESS
Unprivileged processes generally lack write access to most of the
hierarchy.
The exceptions for normal users are /tmp/, /var/tmp/, /dev/shm/,
as well as the home directory $HOME (usually found below /home/)
and the runtime directory $XDG_RUNTIME_DIR (found below
/run/user/) of the user, which are all writable.
For unprivileged system processes, only /tmp/, /var/tmp/ and
/dev/shm/ are writable. If an unprivileged system process needs a
private writable directory in /var/ or /run/, it is recommended
to either create it before dropping privileges in the daemon
code, to create it via tmpfiles.d(5) fragments during boot, or
via the StateDirectory= and RuntimeDirectory= directives of
service units (see systemd.unit(5) for details).
/tmp/, /var/tmp/ and /dev/shm/ should be mounted nosuid
and
nodev
, which means that set-user-id mode and character or block
special devices are not interpreted on those file systems. In
general it is not possible to mount them noexec
, because various
programs use those directories for dynamically generated or
optimized code, and with that flag those use cases would break.
Using this flag is OK on special-purpose installations or systems
where all software that may be installed is known and doesn't
require such functionality. See the discussion of
nosuid
/nodev
/noexec
in mount(8) and PROT_EXEC
in mmap(2).