Gobale Verzeichnisse mit bindfs – Kurzanleitung

Veröffentlichung 7. September 2018 @ 15:31
Letzte Änderung 18. März 2024 @ 17:30

Übersicht

  • Gemeinsame Verzeichnisse für (lokale) Backups und Websites
  • Verzeichniszugriff für weiteren Benutzer über bindfs-Einhängepunkte
  • Unabhängig voneinander einstellbare Benutzer und Gruppen in Originalverzeichnis und Einhängepunkt

Voraussetzungen

Ubuntu-Server

  • Betriebsystem Ubuntu Server 16.04.05 LTS #lsb_release -a
  • Einhängepunkte /home/ubuntuuser/mnt/srv/backup und /home/ubuntuuser/mnt/srv/www mit Benutzer ubuntuuser
  • Globale Verzeichnisse /srv/backup mit Benutzer root und /srv/www mit Benutzer www-data
  • Konfiguration /etc/fstab
  • Software bindfs 1.12.6 #bindfs –version
  • Software fusermount 2.9.4 #fusermount -V

Globale Verzeichnisse anlegen und Zugriffsrechte setzen

mkdir /srv/{backup,www}
chown root:root /srv/backup
chown www-data:www-data /srv/www
chmod 0700 /srv/www

Backup-Verzeichnis von Sicherung mit tar ausschließen

echo 'Signature: 8a477f597d28d172789f06886806bc55' > /srv/backup/CACHEDIR.TAG
chmod 0400 /srv/backup/CACHEDIR.TAG

bindfs installieren

apt install bindfs

Globale Verzeichnisse dauerhaft in Benutzerverzeichnis ubuntuuser einbinden

Einhängepunkte für Benutzer ubuntuuser erstellen und Zugriffsrechte setzen

mkdir --mode=0700 --parents /home/ubuntuuser/mnt/srv/{backup,www}
chown --recursive ubuntuuser:ubuntuuser /home/ubuntuuser/mnt

Konfigurationsdatei für einzubindende Verzeichnisse ergänzen

...
#Globale Verzeichnisse in Benutzerverzeichnis ubuntuuser einbinden:
/srv/backup /home/ubuntuuser/mnt/srv/backup fuse.bindfs chgrp-ignore,chown-ignore,create-for-group=root,create-for-user=root,force-group=ubuntuuser,force-user=ubuntuuser 0 0
/srv/www /home/ubuntuuser/mnt/srv/www fuse.bindfs chgrp-ignore,chown-ignore,create-for-group=www-data,create-for-user=www-data,force-group=ubuntuuser,force-user=ubuntuuser 0 0

[Optional] Globale Verzeichnisse temporär in Benutzerverzeichnis ubuntuuser einbinden

Einhängepunkte für Benutzer ubuntuuser erstellen und Zugriffsrechte setzen

mkdir --mode=0700 --parents /home/ubuntuuser/mnt/srv/{backup,www}
chown --recursive ubuntuuser:ubuntuuser /home/ubuntuuser/mnt

Verzeichnisse mit bindfs einbinden

bindfs --chgrp-ignore --chown-ignore --create-for-group=root --create-for-user=root --force-group=ubuntuuser --force-user=ubuntuuser /srv/backup /home/ubuntuuser/mnt/srv/backup
bindfs --chgrp-ignore --chown-ignore --create-for-group=www-data --create-for-user=www-data --force-group=ubuntuuser --force-user=ubuntuuser /srv/www /home/ubuntuuser/mnt/srv/www

[Optional] Globale Verzeichnisse aus Benutzerverzeichnis ubuntuuser aushängen und Einhängepunkte löschen

Verzeichnisse mit fusermount aushängen

fusermount -u /home/ubuntuuser/mnt/srv/backup
fusermount -u /home/ubuntuuser/mnt/srv/www

Einhängepunkte löschen

rmdir /home/ubuntuuser/mnt/srv/{backup,www}

Quellen

http://manpages.ubuntu.com/manpages/xenial/man1/bindfs.1.html
http://manpages.ubuntu.com/manpages/xenial/man1/fusermount.1.html
http://manpages.ubuntu.com/manpages/xenial/man5/fstab.5.html
http://www.bford.info/cachedir/
http://www.pathname.com/fhs/pub/fhs-2.3.html