Package: plocate
Version: 1.1.1-1
Severity: normal
X-Debbugs-Cc: roderich.sch...@gmail.com

I noticed that locate doesn't report any files in /usr, e.g.

$ locate libx | grep /usr
# no output

Turns out that databases generated by calling updatedb directly
and using the systemd service are different:

root@nuc8:~# rm /var/lib/plocate/plocate.db
root@nuc8:~# /usr/sbin/updatedb.plocate
root@nuc8:~# ls -l /var/lib/plocate/plocate.db
-rw-r----- 1 root plocate 35532841 Dec  7 00:35 /var/lib/plocate/plocate.db

root@nuc8:~# rm /var/lib/plocate/plocate.db
root@nuc8:~# systemctl start plocate-updatedb.service
root@nuc8:~# ls -l /var/lib/plocate/plocate.db
-rw-r----- 1 root plocate 32733304 Dec  7 00:37 /var/lib/plocate/plocate.db

The culprit seems to be

ProtectSystem=full

in plocate-updatedb.service. systemd.exec(5) has:

ProtectSystem=
    Takes a boolean argument or the special values "full" or "strict". If true,
mounts the
    /usr/ and the boot loader directories (/boot and /efi) read-only for
processes invoked
    by this unit. If set to "full", the /etc/ directory is mounted read-only,
too.

Does systemd achieve read-only mounts by using bind-mounts which are pruned by
default?


Cheers, Roderich



-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 5.10.0-rc6 (SMP w/8 CPU threads)
Kernel taint flags: TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages plocate depends on:
ii  libc6       2.31-5
ii  libgcc-s1   10.2.0-23
ii  libstdc++6  10.2.0-23
ii  liburing1   0.7-2
ii  libzstd1    1.4.5+dfsg-4

plocate recommends no packages.

plocate suggests no packages.

-- Configuration Files:
/etc/updatedb.conf changed:
PRUNE_BIND_MOUNTS="yes"
PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /media /var/lib/os-prober /var/lib/ceph"
PRUNEFS="NFS afs autofs binfmt_misc ceph cgroup cgroup2 cifs coda configfs 
curlftpfs debugfs devfs devpts devtmpfs ecryptfs ftpfs fuse.ceph fuse.glusterfs 
fuse.gvfsd-fuse fuse.mfs fuse.rozofs fuse.sshfs fusectl fusesmb hugetlbfs 
iso9660 lustre lustre_lite mfs mqueue ncpfs nfs nfs4 ocfs ocfs2 proc pstore 
rpc_pipefs securityfs shfs smbfs sysfs tmpfs tracefs udev udf usbfs"


-- no debconf information

Reply via email to