J'effectue des tests de CMS sur un serveur virtuel VBox (Debian-stable/Apache2)
Je procède pour ces essais de la même façon que je le ferais pour une installation réellement mise en ligne.
Cela passe par une réduction des permissions sur les fichiers des sites afin de limiter au maximum les risques de malveillance.
Il se trouve que lors de mes derniers tests,
la commande CHMOD produit un effet inattendu qui corrompt les fichiers.
Les fichiers peuvent encore être ouverts, mais ils sont vides dans un éditeur de texte,
et
le gestionnaire (PCManFM) affiche un type : inode/x-corrupted
Sur le même serveur,
j'ai reproduit le phénomène sur 1 répertoire contenant 2 fichiers,
comme suit :
Code : Tout sélectionner
toto@debwebserv1:~$ mkdir test-inod
toto@debwebserv1:~$ vi ./test-inod/file1
toto@debwebserv1:~$ vi ./test-inod/file2
toto@debwebserv1:~$ vdir test-inod
total 8
-rw-r--r-- 1 toto toto 7 juil. 27 17:56 file1
-rw-r--r-- 1 toto toto 7 juil. 27 17:56 file2
toto@debwebserv1:~$ chmod -R 660 test-inod
chmod: impossible d'accéder à 'test-inod/file1': Permission non accordée
chmod: impossible d'accéder à 'test-inod/file2': Permission non accordée
Ici 1ère anomalie (je crois) :
l'utilisateur (toto) qui vient de créer des fichiers dans son répertoire utilisateur,
ne peut en modifier les permissions !
Ensuite :
Code : Tout sélectionner
toto@debwebserv1:~$ sudo chmod -R 660 test-inod
Code : Tout sélectionner
toto@debwebserv1:~$ vdir test-inod
vdir: impossible d'accéder à 'test-inod/file1': Permission non accordée
vdir: impossible d'accéder à 'test-inod/file2': Permission non accordée
total 0
-????????? ? ? ? ? ? file1
-????????? ? ? ? ? ? file2
Code : Tout sélectionner
toto@debwebserv1:~$ sudo vdir test-inod
total 8
-rw-rw---- 1 toto toto 7 juil. 27 17:56 file1
-rw-rw---- 1 toto toto 7 juil. 27 17:56 file2
Voici le partitionnement :
Code : Tout sélectionner
toto@debwebserv1:~$ sudo parted /dev/sda print
[sudo] Mot de passe de toto :
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 7516MB 7515MB primary ext4 boot
2 7517MB 8589MB 1072MB extended
5 7517MB 8589MB 1072MB logical linux-swap(v1)
et le résultat du contrôle de la partition système,
faite dans une session Live de RescueCD
Code : Tout sélectionner
[root@sysresccd ~]# e2fsck -C 0 -fv -cc /dev/sda1
e2fsck 1.45.0 (6-Mar-2019)
Checking for bad blocks (non-destructive read-write test)
Testing with random pattern: done
/dev/sda1: Updating bad block inode.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda1: ***** FILE SYSTEM WAS MODIFIED *****
247870 inodes used (54.03%, out of 458752)
244 non-contiguous files (0.1%)
384 non-contiguous directories (0.2%)
# of inodes with ind/dind/tind blocks: 0/0/0
Extent depth histogram: 192609/71
1352810 blocks used (73.73%, out of 1834752)
0 bad blocks
1 large file
172802 regular files
19679 directories
7 character device files
0 block device files
0 fifos
27 links
55373 symbolic links (55175 fast symbolic links)
0 sockets
------------
247888 files
il porte pourtant des inodes corrompus selon PCManFM
Dernier point,
l'accès à ces fichiers/répertoire est interdit au propriétaire (toto) en ligne de commande :
Code : Tout sélectionner
toto@debwebserv1:~$ cd test-inod
bash: cd: test-inod: Permission non accordée
toto@debwebserv1:~$ ls test-inod
ls: impossible d'accéder à 'test-inod/file1': Permission non accordée
ls: impossible d'accéder à 'test-inod/file2': Permission non accordée
file1 file2
alors que dans la même session de toto,
il est possible d'accéder au contenu du répertoire avec PCManFM
et
qu'il est même possible, toujours via PCManFM,
de modifier récursivement les droits sur le répertoire de test
et de récupérer les fichiers avec leur contenu, par la même occasion.
----------------------------------------------------------------
Voilà,
j'aimerais bien comprendre ce qui se passe,
sachant qu'avant de connaître ce problème,
j'avais effectué d'autres modifications de permissions sur d'autres fichiers/répertoires du même système de fichiers et sans histoires.
Merci pour votre aide.
Question annexe : Peut-on réparer CHMOD ou ... BASH ?