Frage Verhindern Sie die Möglichkeit, Daten in ein nicht eingehängtes Mount-Point-Verzeichnis zu schreiben [duplizieren]


Diese Frage hat hier bereits eine Antwort:

Ich habe einen Ubuntu-Server, auf dem ich bei jedem Bootvorgang eine externe Festplatte autount.

Um dies zu tun, habe ich einen leeren Ordner auf der Root-Partition erstellt, und das Laufwerk wird "innerhalb" dieses Ordners gemountet.

Was passiert jedoch, wenn ich eine Sicherungskopie für diesen Pfad anlege, wenn das Laufwerk nicht ordnungsgemäß geladen ist? Das Backup würde stattdessen meine Root-Partition füllen!

Ich kann sicherstellen, dass das Laufwerk jedes Mal installiert wird, indem Sie Folgendes ausführen:

sudo mount -a

... vor jedem Backup.

Wie können Sie jedoch sicherstellen, dass Daten niemals in den leeren Mount-Ordner geschrieben werden (außer wenn die externe Festplatte wirklich eingehängt ist)?

Kann das ohne Scripting gelöst werden? Sagen Sie mit Berechtigungen zum Beispiel? Was sind die besten Praktiken?


20
2018-01-27 21:23


Ursprung


Verwenden Sie den Befehl mountpoint serverfault.com/questions/436048/ ... - Iain


Antworten:


Ich gehe noch einen Schritt weiter und setze die Attribute meiner Mountpoint-Verzeichnisse immer auf unveränderbar mit Chatr.

Dies wird mit erreicht chattr +i /mountpoint (mit der unmontierten Fassung).

Dies würde bei neuen Schreibaktivitäten fehlschlagen und den Einhängepunkt auch in anderen Situationen schützen.

Aber ich annehmen Du könntest das benutzen Einhängepunktbefehl, auch ;)


32
2018-01-27 22:22



Dies ist eine bessere Lösung; Es erfordert kein Skripting, um sicherzustellen, dass nichts jemals in die Root-Partition geschrieben wird. Für mich scheint dies eine Best Practice zu sein, die für alle Ordner durchgeführt werden sollte, die ausschließlich für die Montage verwendet werden. - LonnieBest
@LonnieBest Danke. Ich bemühe mich sicherzustellen, dass alle Wechseldatenträger oder NFS / CIFS oder größere Datenpartitionen auf diese Weise installiert werden. - ewwhite
Das ist noch besser - ich mag es! - fukawi2
Wie können Sie sicherstellen, dass Dateien nicht in das lokale Dateisystem geschrieben werden, wenn Sie kein Root-Benutzer sind? Sie sehen, dass chattr + i root-Berechtigungen benötigt, und selbst wenn Sie root verwenden, kann ein Nicht-Root-Benutzer nicht mehr auf diesen geschützten Mountpoint zugreifen. Wie also erreicht Nicht-Root-Benutzer dies? - LonnieBest
@LonnieBest Sollten Nicht-Root- / Nicht-Admin-Benutzer Dateisystem-Mount-Privilegien haben? - ewwhite


Um den Kommentar zur Verwendung zu erweitern mountpoint, das ist ungefähr das, was ich in Skripts einfüge, wenn ich diese Art von Dingen überprüfen muss:

DEST='/mnt/backup'
if ! mountpoint -q "$DEST" ; then
    echo "Destination is not mounted; attempting to mount"
    mount $DEST
    if ! mountpoint -q "$DEST" ; then
        echo "Unable to mount $DEST; Aborting"
        exit 1
    fi
    echo "Mounted $DEST; Continuing backup"
fi

Dies setzt voraus, dass $ DEST in existiert /etc/fstab; es ist egal, ob es ein ist auto oder noauto Einhängepunkt.

Gemäß der mount man seite:

Wenn nur Verzeichnis oder Gerät angegeben ist, z.

mount /dir

Dann sucht mount nach einem Mountpoint und wird dann für ein Gerät in der Datei / etc / fstab nicht gefunden. Es ist möglich, die Optionen --tar-get oder --source zu verwenden, um eine ambivalente Interpretation des gegebenen Arguments zu vermeiden. Zum Beispiel

mount --target /mountpoint

2
2018-01-27 22:10



Ist $ DEST der Pfad zum (möglicherweise leeren) Mount-Ordner? Wie weiß der Befehl "mount $ DEST", was dort gemount werden soll? Könnten Sie diesen Beitrag so bearbeiten, dass er einen Beispielwert für die Variable $ DEST enthält? - LonnieBest
@LonnieBest Fertig. - fukawi2
Danke, Mann. Ich frage mich, wie der Befehl mount weiß, welches Gerät mit dem Ordner / mnt / backup verknüpft ist. Ist es Querverweis mit der Fstab? - LonnieBest
@LonnieBest Ja, wenn du nur 1 Argument zur Verfügung stellst mount Er wird / etc / fstab konsultieren, um den Rest der Information zu bestimmen. Ich werde die Antwort mit einem Auszug aus der Manpage aktualisieren. - fukawi2