Ich habe untersucht, welche Berechtigungen zum Löschen von Linux-Dateien erforderlich sind.

Dateiberechtigungen unter Linux sind schwierig. Ich habe untersucht, welche Berechtigungen zum Löschen einer Datei erforderlich sind, daher hinterlasse ich eine Notiz.

Erstellen Sie zunächst ein zu verwendendes Überprüfungstool.

clear_folder.sh


#!/usr/bin/env bash -Ceuo pipefail

for ii in 640 641 642 643 644 645 646 647
do
    rm -rf ${ii}
done

create_folder.sh


#!/usr/bin/env bash -Ceuo pipefail

for ii in 640 641 642 643 644 645 646 647
do
    mkdir -m ${ii} ${ii} && cd ${ii}
    for kk in 640 641 642 643 644 645 646 647
    do
        touch ${kk}
        chmod ${kk} ${kk}
    done
    cd ..
done

check-f.sh


#!/usr/bin/env bash -Ceuo pipefail

for ii in 640 641 642 643 644 645 646 647
do
    for kk in 640 641 642 643 644 645 646 647
    do
        if [[ -f ${ii}/${kk} ]]; then
            echo ${ii}/${kk}
        fi
    done
done

check-rm-f.sh


#!/usr/bin/env bash -Ceuo pipefail

for ii in 640 641 642 643 644 645 646 647
do
    for kk in 640 641 642 643 644 645 646 647
    do
        rm -f ${ii}/${kk} && echo ${ii}/${kk}
    done
done

Ordner und Dateien erstellen (root)

id
uid=0(root) gid=0(root) groups=0(root)

sh create_folder.sh

ls -al
drwxrwxrwx.10 Wurzel Wurzel 199 30. August 00:00 .
dr-xr-xr-x.18 Wurzel Wurzel 235 29. August 23:19 ..
drw-r-----.2 Wurzel Wurzel 94 30. August 00:00 640
drw-r----x.2 Wurzel Wurzel 94 30. August 00:00 641
drw-r---w-.2 Wurzel Wurzel 94 30. August 00:00 642
drw-r---wx.2 Wurzel Wurzel 94 30. August 00:00 643
drw-r--r--.2 Wurzel Wurzel 94 30. August 00:00 644
drw-r--r-x.2 Wurzel Wurzel 94 30. August 00:00 645
drw-r--rw-.2 Wurzel Wurzel 94 30. August 00:00 646
drw-r--rwx.2 Wurzel Wurzel 94 30. August 00:00 647

find . -type f -ls
52669665    0 -rw-r-----1 Wurzel Wurzel 0 30. August 00:00 ./640/640
52669666    0 -rw-r----x 1 Wurzel Wurzel 0 30. August 00:00 ./640/641
52669667    0 -rw-r---w-1 Wurzel Wurzel 0 30. August 00:00 ./640/642
52669669    0 -rw-r---wx 1 root root 0 30. August 00:00 ./640/643
52669670    0 -rw-r--r--1 Wurzel Wurzel 0 30. August 00:00 ./640/644
52669671    0 -rw-r--r-x 1 Wurzel Wurzel 0 30. August 00:00 ./640/645
52669672    0 -rw-r--rw-1 Wurzel Wurzel 0 30. August 00:00 ./640/646
52669675    0 -rw-r--rwx 1 root root 0 30. August 00:00 ./640/647
 1273542    0 -rw-r-----1 Wurzel Wurzel 0 30. August 00:00 ./641/640
 1273543    0 -rw-r----x 1 Wurzel Wurzel 0 30. August 00:00 ./641/641
 1273544    0 -rw-r---w-1 Wurzel Wurzel 0 30. August 00:00 ./641/642
 1273545    0 -rw-r---wx 1 root root 0 30. August 00:00 ./641/643
 1273546    0 -rw-r--r--1 Wurzel Wurzel 0 30. August 00:00 ./641/644
 1273547    0 -rw-r--r-x 1 Wurzel Wurzel 0 30. August 00:00 ./641/645
 1273548    0 -rw-r--rw-1 Wurzel Wurzel 0 30. August 00:00 ./641/646
 1273549    0 -rw-r--rwx 1 root root 0 30. August 00:00 ./641/647
17935011    0 -rw-r-----1 Wurzel Wurzel 0 30. August 00:00 ./642/640
17935012    0 -rw-r----x 1 Wurzel Wurzel 0 30. August 00:00 ./642/641
17935013    0 -rw-r---w-1 Wurzel Wurzel 0 30. August 00:00 ./642/642
17935014    0 -rw-r---wx 1 root root 0 30. August 00:00 ./642/643
17935015    0 -rw-r--r--1 Wurzel Wurzel 0 30. August 00:00 ./642/644
17935016    0 -rw-r--r-x 1 Wurzel Wurzel 0 30. August 00:00 ./642/645
17935017    0 -rw-r--rw-1 Wurzel Wurzel 0 30. August 00:00 ./642/646
17935018    0 -rw-r--rwx 1 root root 0 30. August 00:00 ./642/647
33755963    0 -rw-r-----1 Wurzel Wurzel 0 30. August 00:00 ./643/640
33755966    0 -rw-r----x 1 Wurzel Wurzel 0 30. August 00:00 ./643/641
33755967    0 -rw-r---w-1 Wurzel Wurzel 0 30. August 00:00 ./643/642
33755968    0 -rw-r---wx 1 root root 0 30. August 00:00 ./643/643
34138697    0 -rw-r--r--1 Wurzel Wurzel 0 30. August 00:00 ./643/644
34138698    0 -rw-r--r-x 1 Wurzel Wurzel 0 30. August 00:00 ./643/645
34138699    0 -rw-r--rw-1 Wurzel Wurzel 0 30. August 00:00 ./643/646
34138700    0 -rw-r--rwx 1 root root 0 30. August 00:00 ./643/647
52669678    0 -rw-r-----1 Wurzel Wurzel 0 30. August 00:00 ./644/640
52669679    0 -rw-r----x 1 Wurzel Wurzel 0 30. August 00:00 ./644/641
52669680    0 -rw-r---w-1 Wurzel Wurzel 0 30. August 00:00 ./644/642
52669681    0 -rw-r---wx 1 root root 0 30. August 00:00 ./644/643
52669682    0 -rw-r--r--1 Wurzel Wurzel 0 30. August 00:00 ./644/644
52669683    0 -rw-r--r-x 1 Wurzel Wurzel 0 30. August 00:00 ./644/645
52669684    0 -rw-r--rw-1 Wurzel Wurzel 0 30. August 00:00 ./644/646
52669685    0 -rw-r--rwx 1 root root 0 30. August 00:00 ./644/647
 1273551    0 -rw-r-----1 Wurzel Wurzel 0 30. August 00:00 ./645/640
 1273552    0 -rw-r----x 1 Wurzel Wurzel 0 30. August 00:00 ./645/641
 1273553    0 -rw-r---w-1 Wurzel Wurzel 0 30. August 00:00 ./645/642
 1273554    0 -rw-r---wx 1 root root 0 30. August 00:00 ./645/643
 1273555    0 -rw-r--r--1 Wurzel Wurzel 0 30. August 00:00 ./645/644
 1273556    0 -rw-r--r-x 1 Wurzel Wurzel 0 30. August 00:00 ./645/645
 1273557    0 -rw-r--rw-1 Wurzel Wurzel 0 30. August 00:00 ./645/646
 1273558    0 -rw-r--rwx 1 root root 0 30. August 00:00 ./645/647
17935020    0 -rw-r-----1 Wurzel Wurzel 0 30. August 00:00 ./646/640
17935021    0 -rw-r----x 1 Wurzel Wurzel 0 30. August 00:00 ./646/641
17935022    0 -rw-r---w-1 Wurzel Wurzel 0 30. August 00:00 ./646/642
17935023    0 -rw-r---wx 1 root root 0 30. August 00:00 ./646/643
17935024    0 -rw-r--r--1 Wurzel Wurzel 0 30. August 00:00 ./646/644
17935025    0 -rw-r--r-x 1 Wurzel Wurzel 0 30. August 00:00 ./646/645
17935026    0 -rw-r--rw-1 Wurzel Wurzel 0 30. August 00:00 ./646/646
17935027    0 -rw-r--rwx 1 root root 0 30. August 00:00 ./646/647
34670676    0 -rw-r-----1 Wurzel Wurzel 0 30. August 00:00 ./647/640
35401047    0 -rw-r----x 1 Wurzel Wurzel 0 30. August 00:00 ./647/641
35401048    0 -rw-r---w-1 Wurzel Wurzel 0 30. August 00:00 ./647/642
35401051    0 -rw-r---wx 1 root root 0 30. August 00:00 ./647/643
35401052    0 -rw-r--r--1 Wurzel Wurzel 0 30. August 00:00 ./647/644
35401060    0 -rw-r--r-x 1 Wurzel Wurzel 0 30. August 00:00 ./647/645
35401061    0 -rw-r--rw-1 Wurzel Wurzel 0 30. August 00:00 ./647/646
35401062    0 -rw-r--rwx 1 root root 0 30. August 00:00 ./647/647

Überprüfen Sie die Dateiexistenzprüfung -f, die immer mit sh (allgemeiner Benutzer) verwendet wird.

id
uid=1001(koryo) gid=1001(koryo) groups=1001(koryo)

sh check-f.sh
641/640
641/641
641/642
641/643
641/644
641/645
641/646
641/647
643/640
643/641
643/642
643/643
643/644
643/645
643/646
643/647
645/640
645/641
645/642
645/643
645/644
645/645
645/646
645/647
647/640
647/641
647/642
647/643
647/644
647/645
647/646
647/647

Wenn Sie genau hinschauen, sollten Sie alle Dateien in den Ordnern 641, 643, 645, 647 sehen. Das ist:

Schlussfolgerung 1: Wenn Sie über die Berechtigung x im Dateiordner verfügen, können Sie die Existenz der Datei überprüfen. Auch wenn die Datei selbst keine Berechtigungen hat.

Was passiert, wenn ich mit rm in sh eine Datei lösche? (Allgemeiner Benutzer)

id
uid=1001(koryo) gid=1001(koryo) groups=1001(koryo)

sh check-rm-f.sh
rm:	`640/640'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`640/641'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`640/642'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`640/643'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`640/644'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`640/645'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`640/646'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`640/647'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`641/640'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`641/641'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`641/642'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`641/643'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`641/644'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`641/645'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`641/646'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`641/647'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`642/640'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`642/641'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`642/642'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`642/643'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`642/644'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`642/645'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`642/646'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`642/647'Kann nicht gelöscht werden: Keine Berechtigung
643/640
643/641
643/642
643/643
643/644
643/645
643/646
643/647
rm:	`644/640'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`644/641'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`644/642'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`644/643'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`644/644'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`644/645'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`644/646'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`644/647'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`645/640'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`645/641'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`645/642'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`645/643'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`645/644'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`645/645'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`645/646'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`645/647'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`646/640'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`646/641'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`646/642'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`646/643'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`646/644'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`646/645'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`646/646'Kann nicht gelöscht werden: Keine Berechtigung
rm:	`646/647'Kann nicht gelöscht werden: Keine Berechtigung
647/640
647/641
647/642
647/643
647/644
647/645
647/646
647/647

Die folgenden Dateien wurden gelöscht: (alle Dateien unter 643.647) 643/640,641,642,643,644,645,646,647 647/640,641,642,643,644,645,646,647

Schlussfolgerung 2: Wenn der Dateiordner die Berechtigung w hat, kann er gelöscht werden, auch wenn die Datei keine Berechtigung hat.

das ist alles

Recommended Posts

Ich habe untersucht, welche Berechtigungen zum Löschen von Linux-Dateien erforderlich sind.
Ich habe versucht, Linux wieder einzuführen
Was ich über Linux gelernt habe
Wovon ich süchtig war, als ich mit riesigen Dateien in einer Linux 32-Bit-Umgebung umging
[Linux] Unterteilen von Dateien und Ordnern
Ich möchte wissen, wie LINUX funktioniert!
Ich möchte Linux auf dem Mac verwenden
Verwenden Sie den Befehl rm nicht, um Dateien zu löschen
So finden Sie große Dateien unter Linux
Was ich immer zu meinem ~ / .bashrc hinzufüge
Was tun nach der Installation von Linux (Ubuntu)
Was ich süchtig nach Python Autorun war
Was ich getan habe, um Python-Speicher zu speichern
Linux-Berechtigungen
Ich habe versucht, WAV-Dateien mit Pydub zu synthetisieren.
Ich möchte CSV-Dateien mit Vega-Lite visualisieren!
Was ich beim Update von Python 2.6 auf 2.7 gemacht habe
Ich habe versucht, Linux mit Discord Bot zu betreiben
Ich möchte die Eingabe / Ausgabe von Dateien unter Linux protokollieren
Ich möchte mit dem Linux-Kernel beginnen. Wie ist die Listenkopfstruktur?