# Datenaustausch (303/2025-01) [[_TOC_]] ## Quellen/Links Filezilla: https://filezilla-project.org Winscp: https://winscp.net Android Cx Datei Explorer: https://m6u.de/CXFX Paidrop: https://pairdrop.net Android KDE-Connect: https://m6u.de/KDECON Local Send Downloads: https://localsend.org/de/download Android Local Send: https://m6u.de/LOCSE ## Persönliche Samba-Freigaben ermöglichen Samba-Server im Terminal installieren: ``` sudo apt install samba ``` Für persönliche Freigaben muss ein Benutzer zur Gruppe „sambashare“ gehören. Lassen Sie sich mit ``` groups ``` anzeigen, ob das aktuelle Benutzerkonto bereits dazugehört. Andernfalls führen Sie ``` sudo usermod -aG sambashare [User] ``` aus. Da Samba eine eigene Passwortverwaltung besitzt, muss man außerdem ein Passwort mit ``` sudo smbpasswd -a [User] ``` vergeben. Den Platzhalter „[User]“ ersetzen Sie jeweils durch die Bezeichnung des Benutzerkontos. Nutzer von Ubuntu 24.04 installieren außerdem ``` sudo apt install nautilus-share ``` Die Erweiterung ist nötig, damit der Dateimanager Nautilus „Freigabeoption“ im Kontextmenü anzeigt. Nach diesen Änderungen starten Sie Linux neu. Erlauben Sie Gästen und anderen Benutzern mit ``` chmod 751 /home/[User] ``` den Zugriff auf das Home-Verzeichnis. Linux Mint weist auf das Problem der fehlenden Berechtigungen im Freigabedialog hin, Ubuntu nicht. ## Globale Samba-Freigaben konfigurieren Eine neue Freigabe lässt sich beispielsweise über diese drei Zeilen erstellen, die Sie am Ende der Datei „smb.conf“ einfügen: ``` [data1] path = /data1 writeable = no ``` Damit wird das Verzeichnis „/data1“ unter der Bezeichnung „data1“ freigegeben. Wenn Sie auch Benutzern ohne Konto den Zugriff auf die Freigabe erlauben wollen, ergänzen Sie die Freigabedefinition um folgende Zeile: ``` guest ok = yes ``` Samba berücksichtigt Konfigurationsänderungen nach einiger Zeit automatisch, was sie über einen Neustart des Dienstes mit ``` sudo systemctl restart smbd ``` beschleunigen können. **Schreibrechte aktivieren:** ``` sudo chown -R root:sambashare /data1 sudo find /data1 -type d -exec chmod 775 {} + sudo find /data1 -type f -exec chmod 664 {} + ``` ## Apache-Freigaben ohne und mit Schreibzugriff ``` sudo apt install apache2 ``` ``` sudo mkdir /var/www/html/data mount --bind /data1 /var/www/html/data ``` ``` /data1 /var/www/html/data none bind 0 0 ``` ``` http://[MeinServer]/data ``` **Freigaben mit Schreibzugriff:** ``` sudo a2enmod dav sudo a2enmod dav_fs ``` ``` sudo mkdir /var/www/webdav ``` ``` mount --bind /data1 /var/www/webdav ``` ``` sudo chown -R www-data:www-data /var/www/webdav ``` Bauen Sie oberhalb von „“ die folgenden vier Zeilen ein: ``` Alias /webdav /var/www/webdav DAV On ``` Starten Sie den Webserver mit ``` sudo systemctl restart apache2 ``` neu Den Schreibzugriff können Sie einfach mit ``` sudo chown -R root:root /var/www/webdav ``` unterbinden. **Zusatzinfos:** Apache-Verzeichnisse mit Passwort schützen: Wenn nur bestimmte Personen Zugriff auf die Webseiten erhalten sollten, lässt sich der Zugang mit einem Passwort schützen. Erzeugen Sie zuerst eine Datei für die Authentifizierung: ``` sudo htpasswd -c -B /etc/apache2/.htusers sepp ``` Sie werden aufgefordert ein Passwort zu vergeben. Bauen Sie in einen Anweisungsblock in die Server-Konfiguration „/etc/apache2/sites-available/000-default.conf“ ein: ``` AuthType Basic AuthName "Bitte geben Sie ein Passwort ein!" AuthUserFile /etc/apache2/.htusers Require valid-user ``` Der Zugang wird jetzt nur nach Anmeldung mit dem Benutzernamen „sepp“ und dem vergebenen Passwort gewährt. **Webdav mit Passwort schützen:** Passwortdatei erzeugen: ``` sudo htpasswd -c -B /etc/apache2/.webdav webdavuser ``` Passwortschutz aktivieren: ``` Alias /webdav /var/www/webdav DAV On AuthType Basic AuthName "Mein WebDAV" AuthUserFile /etc/apache2/.webdav Require valid-user ``` ## SFTP für den Datenaustausch nutzen ``` sudo apt install openssh-server ``` ``` ssh [User]@[Server-IP] ``` ``` http://[Name oder IP]/[Webdav-Ordner] ``` **Zusatzinfo: Verwendung von SFTP einschränken** Standardmäßig hat jedes Benutzerkonto SSH- und SFTP-Zugriff. Sie können aber für einzelne Benutzern oder Gruppen den Shell-Zugang über SSH verbieten und SFTP auf ein bestimmtes Verzeichnis beschränken, etwa für den Datenaustausch mit Bekannten oder Mitarbeitern. Dazu öffnen Sie die Datei „/etc/ ssh/sshd_config“ als root in einem Editor und fügen am Ende folgende sechs Zeilen an: ``` Match Group sftpgroup ChrootDirectory /home/sftphome ForceCommand internal-sftp AllowTcpForwarding no PermitTunnel no X11Forwarding no ``` Erstellen Sie mit ``` addgroup sftpgroup ``` eine neue Gruppe und mit den folgenden fünf Zeilen einen neuen Benutzer mit Passwort und das Verzeichnis „/home/sftphome“ mit den erforderlichen Rechten: ``` sudo useradd -s /bin/false -g sftp group sftpuser sudo passwd sftpuser sudo mkdir /home/sftphome sudo chown root:root /home/sftphome sudo chmod 755 /home/sftphome ``` Der Benutzer sftpuser kann sich jetzt über eine SFTP-Client anmelden und Dateien aus „/home/sftphome“ herunterladen. Wenn er auch Dateien hochladen soll, führen Sie folgende Befehle aus: ``` mkdir /home/sftphome/upload chown root:sftpgroup /home/sftphome/upload chmod 775 /home/sftphome/upload ``` Damit erhalten Mitglieder der Gruppe sftpgroup Schreibrechte im Ordner „/home/sftphome/upload“. Eine Anmeldung über SSH ist für diese Gruppe nicht möglich. ## Datenaustausch mit Android-Geräten **KDE Connect:** ``` sudo apt install gnome-shell-extension-gsconnect gnome-shell-extension-prefs sudo apt install kdeconnect --no-install-recommends ``` ## Freigabedienste im Netzwerk bekannt machen Für weitere Serverdienste erstellen Sie Konfigurationsdateien im Ordner „/etc/avahi/services“. Für SFTP beispielsweise die Datei „sftp.service“ mit diesem Inhalt (neun Zeilen): ``` %h (SFTP) _sftp-ssh._tcp 22 ``` **Webdav** Datei webdav.service ``` %h (WebDav) _webdav._tcp 80 path=/webdav u='' p='' ``` **Webdavs (https)** Datei webdavs.service: ``` %h (WebDav) _webdavs._tcp 443 path=/webdav u='' p='' ``` Hinter "u=" tragen Sie den Benutzernamen ein und hinter "p=" das Passwort, wenn Sie die Atuthentifizierung in Apache konfiguriert haben. Datei nfs.service: ``` %h (NFS) _nfs._tcp 2049 path=/srv/nfsv4/ ``` Datei sftp.service: ``` %h (SFTP) _sftp-ssh._tcp 6004 ``` **WS-Discovery-Service:** ``` sudo apt install wsdd2 ```