Datei auf einer NTFS-Partition vor dem Löschen schützen

Message
Author
der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

Datei auf einer NTFS-Partition vor dem Löschen schützen

#1 Post by der-schutzhund »

Hallöchen,

wie lassen sich Dateien, die auf einem NTFS-Laufwerk gespeichert sind vor dem Löschen aus Puppy heraus schützen?

LG

Wolfgang

antilet
Posts: 213
Joined: Fri 17 Aug 2012, 09:24

#2 Post by antilet »

mount
Option ro => read only

oder Dateirechte entsprechend ändern...
[color=blue][size=75]Toshiba Satallite M30X-124 | ATI Mobility Radeon 9700 | Intel PRO/Wireless 2200BG
Most Linux need special boot options to boot on this laptop: i8042.nomux=1 highres=off nohz=off irqpoll[/size][/color]

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

#3 Post by der-schutzhund »

mount
Option ro => read only
Damit lassen sich doch nur ganze Partitionen bearbeiten und nicht einzelne Dateien oder?
oder Dateirechte entsprechend ändern...
Das habe ich natürlich zuerst mittels eines Dateimanagers versucht.
Allerdings wurden die Änderungen der Dateirechte nicht übernommen!
Das wird vermutlich mit dem NTFS zusammen hängen?
Evtl. wird da noch ein spezieller "NTFS-Treiber" benötigt?

LG

Wolfgang

User avatar
HoerMirAuf
Posts: 255
Joined: Tue 22 Jan 2008, 12:11
Location: Würzburg

#4 Post by HoerMirAuf »


der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

#5 Post by der-schutzhund »

Sehr interessant aber wie lässt sich denn nun eine Datei die sich auf einer NTFS-Partition befindet so einstellen, dass sie aus Puppy heraus nicht gelöscht werden kann???

User avatar
HoerMirAuf
Posts: 255
Joined: Tue 22 Jan 2008, 12:11
Location: Würzburg

#6 Post by HoerMirAuf »

Ich bin mir nicht ganz sicher ... wenn ich das richtig verstehe dann geht das nur über usermaping. Wie ich das verstehe werden da die Windows Dateirechte den Windowsnutzern entsprechend auf Linuxnutzer übertragen. Das setzt aber Linux User voraus:

Code: Select all

Umgekehrt erscheinen Dateien, die von Windows-Benutzern angelegt wurden, die in Linux unbekannt sind, dort als Eigentum von "Root", und jedermann hat darauf vollen Zugriff.
Ich vermute mal selbst wenn die Dateirechte vergeben wären, bleibst Du in Puppy immer noch root .... und root darf alles!

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

#7 Post by der-schutzhund »

Alles klar!
Dann muss ich mir etws anderes überlegen! Hab ich auch eigentlich schon.
Besten Dank erst mal!

User avatar
HoerMirAuf
Posts: 255
Joined: Tue 22 Jan 2008, 12:11
Location: Würzburg

#8 Post by HoerMirAuf »

... und wie löst Du das jetzt? Nur des Interesse halber?

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

#9 Post by der-schutzhund »

Wenn ich nicht verhindern kann, dass Schüler eine Datei des Betriebssystems löschen dann muss ich sie beim Herunterfahren wieder herstellen! Jetzt überlege ich wie das am geschicktesten zu erledigen ist.

Ich könnte alle wichtigen Dateien einmal in ein verstecktes Verzeichnis kopieren und beim shutdown prüfen ob sie vorhanden sind und wenn nicht dann kopieren.

Damit das System nicht mehr startet müssten dann schon die Dateien im Bootverzeichnis und das versteckte Verzeichnis gelöscht werden.
Natürlich wäre es dann immer noch möglich einfach die gesamte Festplatte zu löschen.

Ich könnte die wieder Herstellung auch automatisch über meine Wartungsfunktion erledigen lassen was allerdings nur funktioniert wenn mein LehrerPC läuft, was bisher nicht immer der Fall war. Damit könnten dann aber alle Dateien kopiert werden!

Vielleicht wäre auch möglich zu verhindern, dass sda1 gemountet werden kann damit der Rox überhaupt nicht darauf zugreifen kann. Wenn das möglich ist, wäre es eine einfache Lösung ohne große Untersuchungen!

LG

Wolfgang

User avatar
HoerMirAuf
Posts: 255
Joined: Tue 22 Jan 2008, 12:11
Location: Würzburg

#10 Post by HoerMirAuf »

Hmmmm schätze mal du möchtest die ntfs windows partition schützen?

einfach aber wirkungsvoll wäre es in dem Fall die Datei /bin/ntfs-3g einfach umzubenennen. Dann werden ntfs partitionen nur noch ro gemountet.
Wenn du wieder schreibzugriff brauchst einfach wieder zurückumbenennen.

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

#11 Post by der-schutzhund »

HoerMirAuf wrote:Hmmmm schätze mal du möchtest die ntfs windows partition schützen?

einfach aber wirkungsvoll wäre es in dem Fall die Datei /bin/ntfs-3g einfach umzubenennen. Dann werden ntfs partitionen nur noch ro gemountet.
Wenn du wieder schreibzugriff brauchst einfach wieder zurückumbenennen.
Guter Tipp!

Teste ich aus!

LG

Wolfgang

User avatar
HoerMirAuf
Posts: 255
Joined: Tue 22 Jan 2008, 12:11
Location: Würzburg

#12 Post by HoerMirAuf »

... oder du modifizierst die /bin/mount.
ntfs-3g $CMDPRMS -o ro umask=0,no_def_opts,silent 2>/tmp/ntfsmnterr${MYPID}.txt #120103 shinobar: need silent
RETVAL=$?
#v2.16 ntfs-3g v1.417, part. scheduled for check, failed with value 10...
#v4.00 ntfs-3g v1.2412 does not have 4,10, has 15 for dirty f.s., 14 hiberneted...
if [ $RETVAL -eq 4 -o $RETVAL -eq 10 -o $RETVAL -eq 15 -o $RETVAL -eq 14 ];then #try to force it...
if [ $RETVAL -eq 14 ];then
#ntfs-3g $CMDPRMS -o umask=0,no_def_opts,remove_hiberfile 2>/tmp/ntfsmnterr${MYPID}.txt
#RETVAL=$?
echo > /dev/null
else
ntfs-3g $CMDPRMS -o force,umask=0,no_def_opts,silent 2>/tmp/ntfsmnterr${MYPID}.txt #120103 shinobar: need silent.
RETVAL=$?
ERRMSG1="`cat /tmp/ntfsmnterr${MYPID}.txt`"
echo "$ERRMSG1"
if [ $RETVAL -eq 0 ];then
echo "WARNING: NTFS f.s. mounted read/write but corrupted."
[ ! "`pidof X`" = "" ] && nohup gxmessage -bg red -center -title "NTFS WARNING" "The ntfs-3g driver was able to mount the NTFS
partition but returned this error message:
$ERRMSG1

It is mounted read/write, but advice is only write
to it in emergency situation. Recommendation is
boot Windows and fix the filesystem first!!!" &
fi
fi
fi

#ntfs-3g plays very safe and will not mount if thinks anything
#wrong with ntfs f.s. But, we may want to recover files from a
#damaged windows. So, fall back to the kernel ntfs driver...
if [ ! $RETVAL -eq 0 ];then
#mount read-only...
busybox mount -r -t ntfs $CMDPRMS
RETVAL=$?
ERRMSG1="`cat /tmp/ntfsmnterr${MYPID}.txt`"
echo "$ERRMSG1"
if [ $RETVAL -eq 0 ];then
echo "WARNING: NTFS f.s. mounted read-only."
[ ! "`pidof X`" = "" ] && nohup gxmessage -bg red -center -title "NTFS WARNING" "The ntfs-3g driver was unable to mount the NTFS
partition and returned this error message:
$ERRMSG1

So, the inbuilt kernel NTFS driver has been used
to mount the partition read-only." &
fi

fi
fi

grün dazu (ro - read only)
rot wegmachen (Fehlermeldung das nur ro gemountet)
Betrifft aber alle NTFS laufwerke falls mehrere vorhanden

Man könnte auch gezielt ein Laufwerk auswerten.

Die Variabele CMDPRMS enthält den Mountpfad (z.B. /dev/sda1 /mnt/sda1)

Mit einer if then abfrage kann man jetzt nur sda1 -ro mounten und gleichzeitig die Warnmeldung abschalten:
else
#screen out all the options...
CMDPRMS="`echo -n "$*" | tr '\t' ' ' | tr -s ' ' | tr ' ' '\n' | grep '^/' | tr '\n' ' '`"
#kirk advised these options so Rox will not complain about file
#permissions when copy a file to a ntfs partition...
[ -f /tmp/ntfsmnterr${MYPID}.txt ] && rm -f /tmp/ntfsmnterr${MYPID}.txt

RODRIVE=sda1

if [[ "$CMDPRMS" = *$RODRIVE* ]]; then
ntfs-3g $CMDPRMS -o ro umask=0,no_def_opts,silent 2>/tmp/ntfsmnterr${MYPID}.txt
RETVAL=$?
else
ntfs-3g $CMDPRMS -o umask=0,no_def_opts,silent 2>/tmp/ntfsmnterr${MYPID}.txt #120103 shinobar: need silent
RETVAL=$?
fi

#v2.16 ntfs-3g v1.417, part. scheduled for check, failed with value 10...
#v4.00 ntfs-3g v1.2412 does not have 4,10, has 15 for dirty f.s., 14 hiberneted...
if [ $RETVAL -eq 4 -o $RETVAL -eq 10 -o $RETVAL -eq 15 -o $RETVAL -eq 14 ];then #try to force it...
if [ $RETVAL -eq 14 ];then
#ntfs-3g $CMDPRMS -o umask=0,no_def_opts,remove_hiberfile 2>/tmp/ntfsmnterr${MYPID}.txt
#RETVAL=$?
echo > /dev/null
else
ntfs-3g $CMDPRMS -o force,umask=0,no_def_opts,silent 2>/tmp/ntfsmnterr${MYPID}.txt #120103 shinobar: need silent.
RETVAL=$?
ERRMSG1="`cat /tmp/ntfsmnterr${MYPID}.txt`"
echo "$ERRMSG1"

if [ $RETVAL -eq 0 ];then
echo "WARNING: NTFS f.s. mounted read/write but corrupted."
[ ! "`pidof X`" = "" ] && nohup gxmessage -bg red -center -title "NTFS WARNING" "The ntfs-3g driver was able to mount the NTFS
partition but returned this error message:
$ERRMSG1

It is mounted read/write, but advice is only write
to it in emergency situation. Recommendation is
boot Windows and fix the filesystem first!!!" &
fi
fi
fi

#ntfs-3g plays very safe and will not mount if thinks anything
#wrong with ntfs f.s. But, we may want to recover files from a
#damaged windows. So, fall back to the kernel ntfs driver...
if [ ! $RETVAL -eq 0 ];then
#mount read-only...
busybox mount -r -t ntfs $CMDPRMS
RETVAL=$?
ERRMSG1="`cat /tmp/ntfsmnterr${MYPID}.txt`"
echo "$ERRMSG1"
if [[ "$CMDPRMS" != *$RODRIVE* ]]; then
if [ $RETVAL -eq 0 ];then
echo "WARNING: NTFS f.s. mounted read-only."
[ ! "`pidof X`" = "" ] && nohup gxmessage -bg red -center -title "NTFS WARNING" "The ntfs-3g driver was unable to mount the NTFS
partition and returned this error message:
$ERRMSG1

So, the inbuilt kernel NTFS driver has been used
to mount the partition read-only." &
fi
fi
fi
fi

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

#13 Post by der-schutzhund »

Datei /bin/ntfs-3g einfach umzubenennen
Ist doch nicht so eine gute Idee, weil dann ja alle ntfs nicht mehr beschrieben werden können.

Glaube langsam, dass das alles viel zu kompliziert ist und vermutlich an irgendwelchen Stellen doch wieder was nicht funktioniert wenn die Bootpartition auf read only geschaltet wird. Mein Konfigurationsprogramm schreibt z.B. auch in einen Ordner in das Bootlaufwerk.

LG

Wolfgang

User avatar
LazY Puppy
Posts: 1934
Joined: Fri 21 Nov 2014, 18:14
Location: Germany

Re: Datei auf einer NTFS-Partition vor dem Löschen schützen

#14 Post by LazY Puppy »

der-schutzhund wrote:Hallöchen,

wie lassen sich Dateien, die auf einem NTFS-Laufwerk gespeichert sind vor dem Löschen aus Puppy heraus schützen?

LG

Wolfgang
Als ich begann, an LazY Puppy zu arbeiten, hatte ich

1. keine Ahnung von Linux
2. das Problem, daß einige Programme wie z.B.: QJackCtl nicht mehr funktionierten, nach der Installation bestimmter Pakete (QJackCtl mußte aber immer funktionieren!)

Zu 1.: inzwischen habe ich Ahnung von Linux

Zu 2.: das Problem mit QJackCtl lag am überschreiben der Dateien, librdf.so.0 und librdf.so.0.0.0. Diese "rettete" ich dadurch, daß ich petget modifizierte, und zwar dahingehend, daß vor der Installation eines Paketes die entsprechenden Bibliotheken in /tmp gespeichert wurden und nach Beendigung der Installation wieder zurückkopiert wurden.

Das ganze hatte ich dann dahingehend erweitert, daß u.a. auch /usr/local/petget "gerettet" und zurückkopiert wurde/wird, um zu verhindern, daß meine Modifikationen in petget überschrieben werden.

In LazY Puppy findet man die entsprechenden Dateien nach Installation eines Paketes in: /tmp/.LP2_SysBackup und seinen Unterverzeichnissen.

Ich denke, das ist die einfachste Art, einzelne Dateien vor dem Überschreiben zu schützen und sollte auch leichtestens zu realisieren sein, ohne daß Dein Lehrer-PC laufen muß.
RSH

"you only wanted to work your Puppies in German", "you are a separatist in that you want Germany to secede from Europe" (musher0) :lol:

No, but I gave my old drum kit away for free to a music store collecting instruments for refugees! :wink:

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

#15 Post by der-schutzhund »

Einzelne Dateien kopieren und beim shutdown zurückkopieren wenn sie geändert wurden oder fehlen ist sicher der einfachste Weg.

Im schlimmsten Fall könnte dann die Datei gelöscht werden. Wenn dann der PC nicht normal herunter gefahren wird sondern per Hardware ausgeschaltet wird wäre die Datei weg.
Ist es eine Datei die für das booten erforderlich ist würde das System nicht mehr hochfahren.
In den zwei Jahren ist es überhaupt nur ein Mal vorgekommen, dass eine Datei weg war und der PC nicht mehr bootete.

Übrigens mein ConfigMaster-System ist so gut wie fertig.
Eine Funktin muss ich noch einbauen aber Dateien, Verzeichnisse kann ich schon gezielt sichern und wieder herstellen lassen.

LG

Wolfgang

der-schutzhund
Posts: 1045
Joined: Mon 26 Nov 2007, 22:07
Location: Blomberg / Germany

#16 Post by der-schutzhund »

Kurze Zwischenfrage, wie lassen sich innerhalb von einer *.sh - Datei der Reihe nach kleine Infofenster anzeigen und wieder löschen?
xmessage -bg green -center -title "Hinweis" "Modul1 wird geladen... bitte etwas warten.." &
WA_PID=$!
#irgend ein Befehl

#Infofenster loeschen
kill $WA_PID
xmessage -bg green -center -title "Hinweis" "Modul2 wird geladen... bitte etwas warten.." &
WA_PID=$!
#irgend ein Befehl

#Infofenster loeschen
kill $WA_PID
xmessage -bg green -center -title "Hinweis" "Modul3 wird geladen... bitte etwas warten.." &
WA_PID=$!
#irgend ein Befehl

#Infofenster loeschen
kill $WA_PID
Wenn ich das dann so laufen lasse bleibt das erste Fenster stehen.
Klickt man auf die OK-Button dann wird das erste Fenster geschlossen und das zweite wird angezeigt und so weiter.
Woran liegt das?

LG

Wolfgang

User avatar
HoerMirAuf
Posts: 255
Joined: Tue 22 Jan 2008, 12:11
Location: Würzburg

#17 Post by HoerMirAuf »

Moin Wolfgang,

hmm wie meinst du das? Der Prozzess wird erst weiter ausgeführt wenn mit OK bestätigt wurde. Auch "&" Am Zeilenende bringt da nichts, weil der Prozzess ja noch nicht ausgeführt ist sondern "noch in arbeit"

Verwende da doch besser gtkdialog-splash.

Hier mal ein Beispiel ...mit verschiedenen Fensterdekos

Code: Select all

#!/bin/sh
gtkdialog-splash -border false -icon gtk-info -placement center -bg green -fg blue -deco "Hinweis" -text "Modul1 wird geladen... bitte etwas warten.." &
WA_PID=$!
#irgend ein Befehl
sleep 3

#Infofenster loeschen
kill $WA_PID
gtkdialog-splash -icon gtk-info -placement center -bg yellow -text "Modul2 wird geladen... bitte etwas warten.." &
WA_PID=$!
#irgend ein Befehl
sleep 3

#Infofenster loeschen
kill $WA_PID
gtkdialog-splash -icon gtk-dialog-warning -placement center -bg red -text "Modul3 wird geladen... bitte etwas warten.." &
WA_PID=$!
#irgend ein Befehl
sleep 3

#Infofenster loeschen
kill $WA_PID 
Oder wenns unbedingt mit xmessage sein muss, dann denn Befehl mit exec aufrufen also als eigenen Prozess damit der Ursprungsprozess weiterlaufen kann

Code: Select all

#!/bin/sh
exec xmessage -bg green -center -title "Hinweis" "Modul1 wird geladen... bitte etwas warten.." &
WA_PID=$!
#irgend ein Befehl
sleep 2

#Infofenster loeschen
kill $WA_PID
exec xmessage -bg yellow -center -title "Hinweis" "Modul2 wird geladen... bitte etwas warten.." &
WA_PID=$!
#irgend ein Befehl
sleep 2

#Infofenster loeschen
kill $WA_PID
exec xmessage -bg red -center -title "Hinweis" "Modul3 wird geladen... bitte etwas warten.." &
WA_PID=$!
#irgend ein Befehl
sleep 2

#Infofenster loeschen
kill $WA_PID 
Gruß, Mike

antilet
Posts: 213
Joined: Fri 17 Aug 2012, 09:24

#18 Post by antilet »

Man muss nicht zwingend ganze Laufwerke mounten.
Man kann doch auch nur bestimmte Verzeichnisse mounten...
[color=blue][size=75]Toshiba Satallite M30X-124 | ATI Mobility Radeon 9700 | Intel PRO/Wireless 2200BG
Most Linux need special boot options to boot on this laptop: i8042.nomux=1 highres=off nohz=off irqpoll[/size][/color]

User avatar
HoerMirAuf
Posts: 255
Joined: Tue 22 Jan 2008, 12:11
Location: Würzburg

#19 Post by HoerMirAuf »

Hi Antilet

Datei auf einer NTFS-Partition vor dem Löschen schützen
Das schon, aber das verhindert nicht das löschen von Datein :?

antilet
Posts: 213
Joined: Fri 17 Aug 2012, 09:24

#20 Post by antilet »

Na wenn ich nur das Arbeitsverzeichnis mounte, in dem Änderungen erlaubt sind und alles andere nicht, dann sind die Systemdateien schon vor Änderung geschützt...
[color=blue][size=75]Toshiba Satallite M30X-124 | ATI Mobility Radeon 9700 | Intel PRO/Wireless 2200BG
Most Linux need special boot options to boot on this laptop: i8042.nomux=1 highres=off nohz=off irqpoll[/size][/color]

Post Reply