> 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.

Reply via email to