J'ai étudié les autorisations nécessaires pour supprimer les fichiers Linux.

Les autorisations de fichiers sous Linux sont difficiles. J'ai étudié les autorisations nécessaires pour supprimer un fichier, je vais donc laisser une note.

Tout d'abord, créez un outil de vérification à utiliser.

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

Créer des dossiers et des fichiers (racine)

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

sh create_folder.sh

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

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

Valider le contrôle d'existence de fichier -f qui est toujours utilisé avec sh (utilisateur général)

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

Si vous regardez de plus près, vous verrez que tous les fichiers des dossiers 641, 643, 645 et 647 sont présents. C'est:

Conclusion 1: Si vous avez l'autorisation x dans le dossier de fichiers, vous pouvez vérifier l'existence du fichier. Même si le fichier lui-même n'a aucune autorisation.

Que se passe-t-il lorsque j'utilise rm dans sh pour supprimer un fichier? (Utilisateur général)

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

sh check-rm-f.sh
rm:	`640/640'Ne peut pas être supprimé: aucune autorisation
rm:	`640/641'Ne peut pas être supprimé: aucune autorisation
rm:	`640/642'Ne peut pas être supprimé: aucune autorisation
rm:	`640/643'Ne peut pas être supprimé: aucune autorisation
rm:	`640/644'Ne peut pas être supprimé: aucune autorisation
rm:	`640/645'Ne peut pas être supprimé: aucune autorisation
rm:	`640/646'Ne peut pas être supprimé: aucune autorisation
rm:	`640/647'Ne peut pas être supprimé: aucune autorisation
rm:	`641/640'Ne peut pas être supprimé: aucune autorisation
rm:	`641/641'Ne peut pas être supprimé: aucune autorisation
rm:	`641/642'Ne peut pas être supprimé: aucune autorisation
rm:	`641/643'Ne peut pas être supprimé: aucune autorisation
rm:	`641/644'Ne peut pas être supprimé: aucune autorisation
rm:	`641/645'Ne peut pas être supprimé: aucune autorisation
rm:	`641/646'Ne peut pas être supprimé: aucune autorisation
rm:	`641/647'Ne peut pas être supprimé: aucune autorisation
rm:	`642/640'Ne peut pas être supprimé: aucune autorisation
rm:	`642/641'Ne peut pas être supprimé: aucune autorisation
rm:	`642/642'Ne peut pas être supprimé: aucune autorisation
rm:	`642/643'Ne peut pas être supprimé: aucune autorisation
rm:	`642/644'Ne peut pas être supprimé: aucune autorisation
rm:	`642/645'Ne peut pas être supprimé: aucune autorisation
rm:	`642/646'Ne peut pas être supprimé: aucune autorisation
rm:	`642/647'Ne peut pas être supprimé: aucune autorisation
643/640
643/641
643/642
643/643
643/644
643/645
643/646
643/647
rm:	`644/640'Ne peut pas être supprimé: aucune autorisation
rm:	`644/641'Ne peut pas être supprimé: aucune autorisation
rm:	`644/642'Ne peut pas être supprimé: aucune autorisation
rm:	`644/643'Ne peut pas être supprimé: aucune autorisation
rm:	`644/644'Ne peut pas être supprimé: aucune autorisation
rm:	`644/645'Ne peut pas être supprimé: aucune autorisation
rm:	`644/646'Ne peut pas être supprimé: aucune autorisation
rm:	`644/647'Ne peut pas être supprimé: aucune autorisation
rm:	`645/640'Ne peut pas être supprimé: aucune autorisation
rm:	`645/641'Ne peut pas être supprimé: aucune autorisation
rm:	`645/642'Ne peut pas être supprimé: aucune autorisation
rm:	`645/643'Ne peut pas être supprimé: aucune autorisation
rm:	`645/644'Ne peut pas être supprimé: aucune autorisation
rm:	`645/645'Ne peut pas être supprimé: aucune autorisation
rm:	`645/646'Ne peut pas être supprimé: aucune autorisation
rm:	`645/647'Ne peut pas être supprimé: aucune autorisation
rm:	`646/640'Ne peut pas être supprimé: aucune autorisation
rm:	`646/641'Ne peut pas être supprimé: aucune autorisation
rm:	`646/642'Ne peut pas être supprimé: aucune autorisation
rm:	`646/643'Ne peut pas être supprimé: aucune autorisation
rm:	`646/644'Ne peut pas être supprimé: aucune autorisation
rm:	`646/645'Ne peut pas être supprimé: aucune autorisation
rm:	`646/646'Ne peut pas être supprimé: aucune autorisation
rm:	`646/647'Ne peut pas être supprimé: aucune autorisation
647/640
647/641
647/642
647/643
647/644
647/645
647/646
647/647

Les fichiers suivants ont été supprimés: (tous les fichiers de moins de 643 647) 643/640,641,642,643,644,645,646,647 647/640,641,642,643,644,645,646,647

Conclusion 2: Si le dossier de fichiers a l'autorisation w, il peut être supprimé même si le fichier n'a pas l'autorisation.

c'est tout

Recommended Posts

J'ai étudié les autorisations nécessaires pour supprimer les fichiers Linux.
J'ai essayé de réintroduire Linux
Ce que j'ai appris sur Linux
Ce à quoi j'étais accro en traitant d'énormes fichiers dans un environnement Linux 32 bits
[Linux] Comment subdiviser des fichiers et des dossiers
Je veux savoir comment fonctionne LINUX!
Je veux utiliser Linux sur mac
N'utilisez pas la commande rm pour supprimer des fichiers
Comment trouver des fichiers volumineux sous Linux
Ce que j'ajoute toujours à mon ~ / .bashrc
Que faire après l'installation de Linux (Ubuntu)
Ce que j'étais accro à Python autorun
Ce que j'ai fait pour économiser la mémoire Python
Autorisations Linux
J'ai essayé de synthétiser des fichiers WAV en utilisant Pydub.
Je veux visualiser les fichiers csv en utilisant Vega-Lite!
Ce que j'ai fait lors de la mise à jour de Python 2.6 vers 2.7
J'ai essayé d'utiliser Linux avec Discord Bot
Je veux enregistrer les entrées / sorties de fichiers sous Linux
Je veux commencer avec le noyau Linux, quelle est la structure de la tête de liste?