Leerzeichen in Dateien und Ordner unter Linux

Bei Leerzeichen in Dateien und Ordner unter Debian GNU/Linux ist folgendes zu beachten:

In der GUI entspricht der Pfad: /home/yuna/media/VirtualBox VMs/Windows 10

Im CLI (command line interface) rüsselt Linux, wenn Leerzeichen in Dateien und Ordner vorkommen.

$ cd /home/yuna/media/VirtualBox VMs/Windows 10
bash: cd: Zu viele Argumente.

Leerzeichen in Dateien und Ordner werden entweder mit Apostroph oder \ (Backslash) angesprochen. Apostroph wird auch Hochkomma genannt:

$ cd /home/yuna/media/'VirtualBox VMs'/'Windows 10'
$ cd /home/yuna/media/VirtualBox\ VMs/Windows\ 10

Möchtest Du z.B. nach erfolgreichen Starten von nbd (qemu) das *.vdi-File einhängen, geht dies via:

qemu-nbd -c /dev/nbd0 /home/yuna/media/'VirtualBox VMs'/'Windows 10'/'Windows 10.vdi'

oder

qemu-nbd -c /dev/nbd0 /home/yuna/media/VirtualBox\ VMs/Windows\ 10/Windows\ 10.vdi

Eine Datenbank unter MariaDB erstellen

Wir erstellen hier die Datenbank test1 und den User lightning:

Installiere MariaDB:

# apt install default-mysql-server mariadb-server

Starte im Terminal Maria DB:

$ su -
# mariadb

hiermit gelangen wir in den typischen MariaDB-Prompt.

Enter password: ROOT-PASSWORD
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 1120
Server version: 10.5.12-MariaDB-0+deb11u1 Debian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> EINGABE

Datenbank «test1» anlegen:

CREATE DATABASE test1;

Datenbank anzeigen lassen:

SHOW DATABASES;

User «lightning» und Passwort «finalfantasy13» anlegen:

CREATE USER 'lightning'@'localhost' IDENTIFIED BY 'finalfantasy13';

User anzeigen lassen:

SELECT User FROM mysql.user;

User «lightning» der Datenbank «test1» zuweisen:

GRANT ALL ON test1.* TO lightning@localhost IDENTIFIED BY 'finalfantasy13';

Zugewiesen User anzeigen lassen (Kontrolle):

SHOW GRANTS for 'lightning'@'localhost';

die soeben erstellte Datenbank kann nun per USE ausgewählt werden.

MariaDB [(none)]> USE test1;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [test1]> EINGABE

phpmyadmin

phpmyadmin ist ein Tool, welches die Verwaltung der Datenbanken enorm vereinfacht. Wer sich somit nicht mit der Kommandozeile (CLI) auseinander setzten möchte, geht den Weg via phpmyadmin. Den gesamten Ordner verschieben wir nach:
/var/www/html

um diesen dann im Browser per:
https://example.com/phpmyadmin

aufrufen zu können. Ab hier steht uns nun eine grafische Oberfläche zur Verfügung. Standardmässig ist das root-Login für phpmyadmin deaktiviert. Dies kann mit:

SET PASSWORD FOR 'root'@localhost = PASSWORD("starkes-passwort-hier-rein");

umgangen werden.


PostgreSQL

Falls als Datenbank-Server PostgreSQL läuft, wird die Datenbank (mydb) und der dazugehörende Benutzer (lightning) mit dem Tool psql erstellt:

root@supertux:~# su - postgres
postgres@supertux:~$ psql
psql (13.5 (Debian 13.5-0+deb11u1))
Geben Sie »help« für Hilfe ein.

postgres=# create database test1;
CREATE DATABASE
postgres=# create user lightning with encrypted password 'finalfantasy13';
CREATE ROLE
postgres=# grant all privileges on database test1 to lightning;
GRANT
postgres=# \q

Nextcloud in Debian

Nextcloud ist ideal geeignet, um seine eigene Cloud-Lösung zu realisieren. Die Software lässt sich auf dem eigenen Hosting leicht installieren und lässt keine Wünsche offen. Ob nun am Windows-PC oder am Linuxrechner: deine Daten bleiben in deiner Hand und man ist an keinen Hersteller und Anbieter gebunden.

Nextcloud ist sehr gut dokumentiert und im Internet gibt es hunderte von Anleitungen, welche die Installation detailliert beschreiben. Ziel unserer Installation ist «der grüne Haken» zu bekommen:


Installation beginnen

Die Installation von nextcloud ist am einfachsten via ssh-Zugang. Lade per wget die Datei herunter und entpacke sie. Das Hochladen via FTP-Client ist nur bedingt zu empfehlen, da es beim Hochladen zu Fehlern kommen kann. Die aktuelle Version von nextcloud (März 2022) hat etwas über 22000 Dateien.

# wget https://download.nextcloud.com/server/releases/nextcloud-VERSION.zip
# unzip nextcloud-VERSION.zip
# chown -R www-data:www-data /var/www/html/nextcloud

Alternativ kann die Berechtung für nextcloud im entprechenden Ordner /var/www/html/nextcloud auch mit dem find-Befehl gesetzt werden:

# find . -exec chown www-data:www-data {} \;

weitere Fehlermeldungen und schrittweises abarbeiten

nextcloud benötigt eine MySQL-Datenbank. Gibt nextcloud diesbezüglich eine Fehlermeldung aus, liegt es in der Regel an fehlenden Berechtigungen des Datenbankbenutzers. Ist nextcloud Installiert überprüfen wir die Sicherheits- und Einrichtungswarnungen. Viel Meldungen lassen sich über die .htacces, php.ini oder durch Installation des fehlenden php-Moduls beheben. Spätestens jetzt zeigt sich auch der Vorteil eines «eigenen» Servers, falls tiefere Eingriffe nötig sind. Das output_buffering lässt sich z.B. am einfachsten via php.ini beheben.

Vorgehen (einige Beispiele)

Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB.

Lösbar über:

# nano -w .htaccess

php_value memory_limit 512M

Der «Strict-Transport-Security»-HTTP-Header ist nicht auf mindestens «15552000» Sekunden eingestellt. Für
mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in den Sicherheitshinweisen erläutert ist.

Lösbar via

# nano -w .htaccess

<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000;
</IfModule>

Aktiviere anschliessend das Modul headers und starte den apache2 neu:

# a2enmod headers
# service apache2 restart

Dein Webserver ist nicht richtig konfiguriert, um «/.well-known/webfinger aufzulösen (…)»

Lösbar via

# nano -w .htaccess

<IfModule mod_rewrite.c>
RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav [R=301,L]
RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav [R=301,L]
RewriteRule ^\.well-known/webfinger /nextcloud/index.php/.well-known/webfinger [R=301,L]
RewriteRule ^\.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo [R=301,L]
</IfModule>

Falls dies nicht klappt, öffne:

# nano /etc/apache2/sites-enabled/000-default-le-ssl.conf

und setze die Weiterleitungen hier ein:
# nextcloud Redirect #
Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav
Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav
Redirect 301 /.well-known/webfinger /nextcloud/index.php/.well-known/webfinger
Redirect 301 /.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo

Für Deine Installation ist keine Standard-Telefonregion festgelegt. Dies ist erforderlich, um Telefonnummern in den Profileinstellungen ohne Ländercode überprüfen zu können. Um Nummern ohne Ländercode zuzulassen, füge bitte «default_phone_region» mit dem entsprechenden ISO 3166-1-Code 7 der gewünschten Region hinzu.

Die Standard-Telefonregion benötigen einen Abstecher nach

# nano -w /var/www/html/nextcloud/config/config.php

Ergänze (für die Schweiz) die config.php mit folgender Zeile:
'default_phone_region' => 'CH',

Es wurde kein PHP Memory Cache konfiguriert. Konfiguriere zur Erhöhung der Leistungsfähigkeit, soweit verfügbar, einen Memory Cache.

Installiere in diesem Fall folgendes php-Module nach:

# apt install php-apcu

und ergänze

# nano -w /var/www/html/nextcloud/config/config.php

mit folgender Zeile:
'memcache.local' => '\OC\Memcache\APCu',

Öffne nun

# nano -w /etc/php/7.4/apache2/php.ini

und füge ganz unten folgenden Befehl ein:
apc.enable_cli=1

Starte nun den apache2 neu:

# systemctl restart apache2

Dem Modul php-imagick fehlt die SVG-Unterstützung. Für eine bessere Kompatibilität wird empfohlen, es zu installieren.

Installiere folgendes Paket:

# apt install libmagickcore-6.q16-6-extra

The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply opcache.interned_strings_buffer to your PHP configuration with a value higher than 8.

Lösbar via

# nano -w /etc/php/7.4/apache2/php.ini

Erhöhe den Wert von 8 auf eine höhere Zahl und entferne ggf. das Semikolon:
; The amount of memory for interned strings in Mbytes.
;opcache.interned_strings_buffer=8

; The amount of memory for interned strings in Mbytes.
opcache.interned_strings_buffer=16

Starte anschliessend den Webserver neu:

# /etc/init.d/apache2 restart

Die Datenbank wird zum Sperren von Transaktionsdateien verwendet. Um die Leistung zu verbessern, richte bitte, sofern verfügbar, Memcache ein.

Installiere redis und setzte die Rechte für den Benutzer redis auf www-data:

# apt-get install redis-server php-redis
# usermod -a -G redis www-data

Editiere die config.php von Nextcloud mit:

# nano /var/www/html/nextcloud/config/config.php

und füge folgendes ein:
  'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array (
'host' => 'localhost',
'port' => 6379,
),

starte den apache neu:

# systemctl restart apache2

nextcloud in Debian integrieren

Um nextcloud in Debian GNU / Linux zu integrieren, lade das Linux AppImage herunter. Windows 10/11 Nutzer laden sich die msi-Datei hier herunter.

Die Datei wird ausführbar gemacht und anschliessend gestartet.

$ chmod +x /pfad/zur/datei/nextcloud-VERSION.AppImage
$ ./nextcloud-VERSION.AppImage

Anschliessend kann der Client gestartet werden und beginnt mit der Installationsroutine. Gib hier deine Anmeldedaten für deine nextcloud ein. Hat alles geklappt, ist nextcloud intergriert und fragt, was synchronisiert werden soll:

Die App beginnt nur mit der Synchronisation.


nextcloud kann noch mehr…

E-Mail, Kalender und Kontakte lassen sich allsamt in nextcloud integrieren und mittels App auf dem Smartphone synchronisieren. Die App DAVx5 sorgt für die reibungslose Synchronisation zwischen Android-Smartphone und deiner eigenen Cloud.

Beispiel für die smb.conf

# ======================= Global Settings ======================= #

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = smb

####### Authentication #######

security = user

# This option controls how unsuccessful authentication attempts are mapped
# to anonymous connections
map to guest = bad password

# ======================= Share Definitions ===================== #

[homes]
comment = Home Directories
browseable = no

# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
read only = no
create mode = 0750

[public]
path = /pfad/zum/Ordner
public = yes
writable = yes
comment = smb share
printable = no
guest ok = yes