Απομακρυσμένη πρόσβαση αρχείων του NextCloud με το webDAV

Πρόσβαση με το webDAV

Υπάρχουν πολλοί τρόποι πρόσβασης στα αρχεία του NextCloud και ένας από αυτούς, όχι η πάντα ή καλύτερη επιλογή, είναι με την βοήθεια του webDAV. Σε αυτό το σημείωμα θα δούμε το πως. Για το γιατί διαβάστε

Βρίσκω την διεύθυνση WebDaV

Θα βρούμε την διεύθυνση του WebDav μέσα απο το nextcloud

image

κια θα έχει την μορφή https:/XXX.XXX.XXX/nextcloud/remote.php/dav/files/talos/. Την αντιγράφουμε για την συνέχεια.

Στην εγκατάσταση μου to nextcloud είναι προσβάσιμο απο μια διεύθυνση της μορφής https:/XXX.XXX.XXX/nextcloud/ και όχι από μια της μορφής https:/XXX.XXX.XXX/. Χρησιμοποιώ το ddns της dynu.com/ και SSL. Προσαρμόστε τις οδηγίες ανάλογα με την εγκατάσταση σας.

O εύκολος τρόπος: Gnome accounts

Ο ευκολότερος τρόπος είναι με την βοήθεια του Google accounts. Για την διεύθυνση του server θα δώσω https://XXXX.ΧΧΧ.ΧΧΧ/nextcloud/

Ο χειροκίνητος τρόπος

Ένας εναλλακτικός τρόπος είναι να συνδεθούμε με τον file manager. Για τον nautilus, nemo και το thunar ή διεύθυνση θα είναι davs://ΧΧΧ.ΧΧΧ.ΧΧΧ/nextcloud/remote.php/dav/files/talos/ ενώ για το dolphin θα βάλουμε webdav://ΧΧΧ.ΧΧΧ.ΧΧΧ/nextcloud/remote.php/dav/files/talos/.

image

Ο δύσκολος τρόπος

Αν θέλουμε πρόσβαση από το τερματικό θα πρέπει να το κάνουμε mount σε κάποιο κατάλογο. Για ευκολία έφτιαξα το παρακάτω script και το σημείο προσάρτησης είναι στο /mnt/nextcloud. προσαρμόστε το αλλάζοντας την διεύθυνση και τους κωδικούς και το τρέχουμε.

#!/usr/bin/bash
USERNAME="talos"
NEXTCLOUD_USERNAME="talos"
NEXTCLOUD_PASSWORD="something-secret"
WEBDAV_SERVER="XXXX.ΧΧΧ.ΧΧΧ"

WEBDAV_SERVER_BASE="https://${WEBDAV_SERVER}/nextcloud"
WEBDAV_SERVER_URL="${WEBDAV_SERVER_BASE}/remote.php/dav/files/${NEXTCLOUD_USERNAME}/"

echo "*** Installing davfs2"
cat <<EOF | sudo debconf-set-selections
davfs2 davfs2/suid_file boolean false
EOF
sudo apt install -y davfs2

echo "*** Add user to davfs group (logout required)"
sudo usermod -aG davfs2 "${USERNAME}"


echo "*** Fixing locks: /etc/davfs2/davfs2.conf"
cat <<EOF | sudo tee -a /etc/davfs2/davfs2.conf
# Remove locking for NextCloud
use_locks 0
EOF


echo "*** Create mount point '/mnt/nextcloud/${USERNAME}'"
sudo mkdir -p "/mnt/nextcloud/${USERNAME}"
sudo chown "${USERNAME}:${USERNAME}" "/mnt/nextcloud/${USERNAME}"
echo "Nextcloudav mount point" > "/mnt/nextcloud/${USERNAME}/.info"

echo "*** Create user credentials '${HOME}/.davfs2/secrets'"
mkdir "${HOME}/.davfs2"
sudo cp  /etc/davfs2/secrets "${HOME}/.davfs2"
sudo chown "${USERNAME}:${USERNAME}" "${HOME}/.davfs2/secrets"
echo "${WEBDAV_SERVER_URL} ${NEXTCLOUD_USERNAME} ${NEXTCLOUD_PASSWORD}" >> "${HOME}/.davfs2/secrets"
#cat  "${HOME}/.davfs2/secrets"
chmod 600 "${HOME}/.davfs2/secrets"

echo "*** Create entry at '/etc/fstab'"
cat <<EOF | sudo tee -a /etc/fstab
# Nextcloud mount point for '${USERNAME}'
${WEBDAV_SERVER_URL} /mnt/nextcloud/${USERNAME} davfs rw,user,uid=${USERNAME},gid=${USERNAME} 0 0
EOF

echo "*** Create systemd user mount"
mkdir -p  ${HOME}/.config/systemd/user/
cat << EOF | tee ${HOME}/.config/systemd/user/
[Unit]
Description=Mount nextcloud data 
After=network-online.target
Wants=network-online.target

[Mount]
What=${WEBDAV_SERVER_URL}${USERNAME}/
Where=/mnt/nextcloud/${USERNAME}
Type=davfs
Options=rw,user,uid=${USERNAME},gid=${USERNAME}
TimeoutSec=20

[Install]
WantedBy=remote-fs.target
WantedBy=multi-user.target
EOF

echo "*** Enable systemd user mount"
systemctl --user daemon-reload
systemctl --user enable mnt-nextcloud-${USERNAME}.mount
systemctl --user start mnt-nextcloud-${USERNAME}.mount
systemctl --user status --no-pager mnt-nextcloud-${USERNAME}.mount

echo "*** Enable systemd user mount autostart"
mkdir -p ${HOME}/.config/autostart
cat << EOF | tee ${HOME}/.config/autostart/NextcloudMount.desktop
[Desktop Entry]
Name=NextcloudDavfs
GenericName=Nextcloud davfs
Exec=systemctl --user start mnt-nextcloud-${USERNAME}.mount
Terminal=false
Icon=nextcloud
Categories=Network
Type=Application
StartupNotify=false
X-GNOME-Autostart-enabled=true
EOF
2 Likes