Allgemeine Tipps zu Linux
Sudo
Ein Aufruf von sudo erzeugt unter Unständen (je nach Version), wenn nicht schon vorhanden, im
User-Verzeichnis die leere Datei
.sudo_as_admin_successful. Diese verhindert bei
weiteren sudo-Aufrufen eine Benachrichtigung, man möge doch bitte die zugehörige Man-Page
lesen. Letzteres wird angeblich in der
/etc/bash.bashrc ausgelöst, was ich auf
meinen Systemem allerdings nicht nachvollziehen konnte.
Man kann
.sudo_as_admin_successful ohne Folgen löschen, sie wird beim
nächsten sudo-Aufruf wieder erzeugt.
Zur Abhilfe ist die Datei /etc/sudoers.d/disable_admin_file_in_home mit dem passenden
Inhalt zu erstellen :
$ sudo nano /etc/sudoers.d/disable_admin_file_in_home
# Disable ~/.sudo_as_admin_successful file
Defaults !admin_flag
sshfs
sshfs ist ein Filesystem, mit dem entfernte Verzeichnisse über
ssh und
sftp lokal eingebunden werden. Infos gibt es auf
sshfs (Wikipedia) und der Projektseite
sshfs (GitHub).
Im Folgenden gilt :
<user> Benutzer auf dem
entfernten Rechner
<hostname> Nmae oder IP-Adresse des entfernten
Rechners
<directory> einzubindendes Verzeichnis auf dem entfernten
Rechner
<mountpoint> Startverzeichnis auf dem lokalen Rechner
Voraussetzung für die Benutzung von sshfs ist, daß auf dem entfernten
Rechner der ssh-Server läuft und daß vom lokalen Rechner ein ssh-Zugang zum entfernten
Rechner besteht.
Händisches Mounten funktionert praktisch sofort :
$ sshfs [<user>@]<hostname>:[<directory>] <mountpoint>
Das eigentliche Ziel ist jetzt, das Verzeichnis bereits beim Booten zu mounten. Dazu bedarf es etwas
mehr Arbeit.
Schritt 1 : Passwortlose SSH-Verbindung
Zuerst muus, falls noch nicht geschehen, der SSH-Key erzeugt werden. Eie gute Anleitung dazu gibt es
auf Linux-Console.net :
So generieren Sie einen
SSH-Schlüssel unter Linux. Wichtig ist für unseren Fall, daß
keine
Passphrase angegeben wird.
Die erste Zeile ist nut nötig, falls man sich schon mal an <hostname> angemeldet hatte und
das nun auf passwortlos umstellen will.
Dann wird der Schlüssel übertragen und die Verbindung getestet.
$ ssh-keygen -f "/home/<user>/.ssh/known_hosts" -R "<hostname>"
$ ssh-copy-id <user>@&<hostname>
$ ssh <user>@&<hostname>
Linux ronald 6.6.51+rpt-rpi-v6 #1 Raspbian 1:6.6.51-1+rpt3 (2024-10-08) armv6l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Dec 28 14:30:19 2024 from 192.168.___.___
$ exit
Abgemeldet
Connection to <hostname> closed.
$
Schritt 2 : Mountpoint anlegen
Der Mountpoint ist das Verzeichnis, in dem das entfernte Verzeichnis auf dem lokalen Rechner nach dem
Mounten zur Verfügung steht. <mountpoint>& ist der vollständige Pfad dorthin.
Da
sshfs im Userland läuft, legt man dieses Verzeichnis sinnvollerweise unter
/home/<user>/ an, dann stimmen auch gleich die Zugriffrechte. Das ist aber kein
Muss.
Schritt 3 : Anpassen der Filesystemtable
In der Datei
/etc/fstab wird ein Eintrag für die gewünschte Verbindung
eingefügt. Vorher eine Sicherung dieser Datei anzulegen ist sicher nicht die schlechteste aller
Ideen.
Nach dem Abspeichern wird der Rechner neu gestartet, neu Anmelden reicht
nicht!
$ sudo cp /etc/fstab /etc/fstab.backup
$ sudo nano /etc/fstab
$ sudo shutdown -r now
Die neue Zeile sieht folgendermaßen aus :
<user>@<hostname>:<directory> <mountpoint> fuse.sshfs
_netdev,x-systemd.device-timeout=5,defaults,IdentityFile=/home/<user>/.ssh/id_ed25519,allow_other
Die Parameter nach fuse.sshfs sind so ziemlich das Minimum, das es zum Funktionieren
braucht.
_netdev
|
Besagt u.a., daß vor dem Mounten auf eine funktionsfähige Netzwerkverbindung
zum Zielrechner gewartet werden soll.
|
x-systemd.device-timeout=5
|
Das ist die Wartezeit auf eine Reaktion des Zielrechners.
Braucht man nicht unbedingt, hat sich asber bei alten RaspberryPis bewährt.
|
defaults
|
Standarteinstellung für Dateisysteme, kann nichts schaden.
|
IdentityFile=/home/<user>/.ssh/id_ed25519 | Schlüsseldatei
kann auch anderes heißen, je nach dem, welcher Schlüsseltyp verwendet wird.
|
allow_other
|
Besagt, daß auch andere Benutzer auf <mountpoint> zugreifen dürfen.
Notwendig, da beim Booten von root gemaountet wird, aber
<user> darauf zugreifen will.
|
Der jetzt im Dateisystem auftauchende Mountpoint kann wie jedes andere Verzeichnis benutzt werden.
Eine gute Anleitung zu sshfs gibt es von Alexander Veuhoff : Das SSH-Dateisystem (SSHFS): Verzeichnisse unter Linux über eine SSH-Verbindung
mounten.
© Uwe Jantzen