> Assuming you didn't actually mount this file system read-only It's my root partition, so I'd have a lot more symptoms if that were the case
> Check the systemd unit $ systemctl list-units | grep -i dav radicale.service loaded active running A simple CalDAV (calendar) and CardDAV (contact) server apache2.service loaded active running The Apache HTTP Server Assuming that a hypothetical config error would be in the latter: $ systemctl cat apache2 ``` # /usr/lib/systemd/system/apache2.service [Unit] Description=The Apache HTTP Server After=network.target remote-fs.target nss-lookup.target Documentation=https://httpd.apache.org/docs/2.4/ [Service] Type=notify Environment=APACHE_STARTED_BY_SYSTEMD=true ExecStart=/usr/sbin/apachectl start ExecStop=/usr/sbin/apachectl graceful-stop ExecReload=/usr/sbin/apachectl graceful # Send SIGWINCH for graceful stop KillSignal=SIGWINCH KillMode=mixed PrivateTmp=true Restart=on-abnormal OOMPolicy=continue RemoveIPC=yes DevicePolicy=closed KeyringMode=private LockPersonality=yes MemoryDenyWriteExecute=yes PrivateDevices=yes ProtectClock=yes ProtectControlGroups=yes ProtectHome=read-only ProtectHostname=yes ProtectKernelLogs=yes ProtectKernelModules=yes ProtectKernelTunables=yes ProtectSystem=full RestrictNamespaces=yes RestrictRealtime=yes RestrictSUIDSGID=yes SystemCallArchitectures=native ProtectProc=invisible ProcSubset=pid ReadWritePaths=-/var/log/apache2 ReadWritePaths=-/var/cache/apache2/mod_cache_disk InaccessiblePaths=/boot InaccessiblePaths=/root InaccessiblePaths=-/etc/sudoers InaccessiblePaths=-/etc/sudoers.d InaccessiblePaths=-/etc/ssh InaccessiblePaths=-/etc/apt InaccessiblePaths=-/etc/.git InaccessiblePaths=-/etc/.svn [Install] WantedBy=multi-user.target ``` ... and I have no idea what in there would be causing problems. > and the /etc/apparmor.d/ directory $ ls /etc/apparmor.d ``` 1password abi abstractions balena-etcher brave buildah busybox cam ch-checkns chrome chromium ch-run code crun devhelp disable Discord element-desktop epiphany evolution firefox flatpak foliate force-complain geary github-desktop goldendict guestfs-tools ipa_verify kchmviewer keybase lc-compliance libcamerify libreoffice-oosplash libreoffice-senddoc libreoffice-soffice.bin libreoffice-xpdfimport libvirt linux-sandbox local loupe lsb_release lxc-attach lxc-create lxc-destroy lxc-execute lxc-stop lxc-unshare lxc-usernsexec mariadbd_akonadi mmdebstrap MongoDB_Compass msedge mysqld_akonadi nautilus notepadqq nvidia_modprobe obsidian opam opera pageedit plasmashell polypane postgresql_akonadi privacybrowser qcam qmapshack QtWebEngineProcess qutebrowser rootlesskit rpm rssguard runc sbuild sbuild-abort sbuild-adduser sbuild-apt sbuild-checkpackages sbuild-clean sbuild-createchroot sbuild-destroychroot sbuild-distupgrade sbuild-hold sbuild-shell sbuild-unhold sbuild-update sbuild-upgrade scide signal-desktop slack slirp4netns steam stress-ng surfshark systemd-coredump toybox transmission trinity tunables tup tuxedo-control-center unix-chkpwd unprivileged_userns userbindmount usr.bin.akonadiserver usr.bin.evince usr.bin.man usr.bin.passt usr.bin.pasta usr.bin.tcpdump usr.lib.ipsec.lookip usr.lib.libvirt.virt-aa-helper usr.lib.snapd.snap-confine.real usr.sbin.cups-browsed usr.sbin.cupsd usr.sbin.libvirtd uwsgi-core vdens virtiofsd vivaldi-bin vpnns wike wpcom Xorg zoom ``` I don't see anything there that would be relevant to WebDAV. Besides, they're all stock files, I haven't touched any of them, so it wouldn't make sense that I'm the only person in the world unable to get WebDAV working. > But it fixes the lock error we begin with. Somewhat. We already know that Apache cannot write to /var/www/html/webdav , so trying to put the DBLock file there won't work. The fix, not that I'm complaining, relocated the DBLock file to a directory where Apache can write, but it has yet to explain why /var/www/html/webdav *isn't* writeable. But I think we established that Apache *can* write to some directories (like /var/log/apache2/). Just not that one. > To make sure it is the problem please provide > sudo -u www-data touch /var/www/html/webdav/newtest Works. I can read and write whatever I want wherever I want from bash. Just not from WebDAV. > ps aux|grep apache ``` root 5017 0.0 0.0 27640 15736 ? Ss 11:23 0:01 /usr/sbin/apache2 -k start -DFOREGROUND www-data 5021 0.0 0.1 39068 21800 ? S 11:23 0:00 /usr/sbin/apache2 -k start -DFOREGROUND www-data 5022 0.0 0.1 39068 21788 ? S 11:23 0:00 /usr/sbin/apache2 -k start -DFOREGROUND www-data 5023 0.0 0.1 39068 21796 ? S 11:23 0:00 /usr/sbin/apache2 -k start -DFOREGROUND www-data 5024 0.0 0.1 39068 21796 ? S 11:23 0:00 /usr/sbin/apache2 -k start -DFOREGROUND www-data 5025 0.0 0.1 39068 21904 ? S 11:23 0:00 /usr/sbin/apache2 -k start -DFOREGROUND www-data 5058 0.0 0.1 39068 21788 ? S 11:23 0:00 /usr/sbin/apache2 -k start -DFOREGROUND www-data 5693 0.0 0.1 39068 21900 ? S 11:26 0:00 /usr/sbin/apache2 -k start -DFOREGROUND www-data 5892 0.0 0.1 39068 21800 ? S 11:36 0:00 /usr/sbin/apache2 -k start -DFOREGROUND www-data 6227 0.0 0.1 39068 21796 ? S 11:51 0:00 /usr/sbin/apache2 -k start -DFOREGROUND ``` > ls -ld /var/www/html/webdav drwxrwxrwx 1 www-data www-data 38 Mar 13 16:07 /var/www/html/webdav > ls -al /var/www/html/webdav/ total 4 drwxrwxrwx 1 www-data www-data 38 Mar 13 16:07 . drwxr-xr-x 1 root root 90 Sep 26 15:49 .. -rw-rw-r-- 1 root root 41 Mar 1 18:07 index.html -rw-rw-r-- 1 www-data www-data 0 Mar 13 16:07 newtest Sigh. I'm wondering whether it's more efficient for me to upload the contents of my hard drive to the Internet rather than copy and paste it here... Nevertheless, thank you for your help.

