# [FICHIER] Peut pas detruire repertoire (resolu)

## Trevoke

```
Tue Sep 12 08:59:22 EDT 2006

/var/tmp/portage

root@Gen2Al: pts/3: 23 files 15Kb -> rm -rf *

rm: cannot remove directory `gcc-4.1.0/work/gcc-4.1.0/libjava/classpath/resource/gnu/java/locale': Directory not empty

rm: cannot remove directory `gcc-4.1.1/work/gcc-4.1.1/libjava/classpath/resource/gnu/java/locale': Directory not empty

```

```
Tue Sep 12 09:01:30 EDT 2006

/var/tmp/portage/gcc-4.1.0/work/gcc-4.1.0/libjava/classpath/resource/gnu/java/locale

root@Gen2Al: pts/3: 0 files 1.0Kb -> ls -la

total 1

drwx------ 2 root root 3 2006-04-07 17:53 .

drwx------ 3 root root 3 2006-04-07 17:53 ..

```

Tous les sous-repertoires ont les permissions drwx, sauf...

```
Tue Sep 12 09:03:23 EDT 2006

/var/tmp/portage/gcc-4.1.0/work

root@Gen2Al: pts/3: 1 files 1.5Kb -> ls -la

total 2

drwx------ 3 portage portage 3 2006-04-07 17:53 .

drwxr-xr-x 3 portage portage 3 2006-04-07 17:53 ..

drwx------ 3 root    root    3 2006-04-07 17:53 gcc-4.1.0

Tue Sep 12 09:03:24 EDT 2006

/var/tmp/portage/gcc-4.1.0/work

root@Gen2Al: pts/3: 1 files 1.5Kb -> cd ..

Tue Sep 12 09:03:34 EDT 2006

/var/tmp/portage/gcc-4.1.0

root@Gen2Al: pts/3: 1 files 1.5Kb -> ls -la

total 2

drwxr-xr-x 3 portage portage 3 2006-04-07 17:53 .

drwxrwxr-x 4 portage portage 4 2006-09-12 09:00 ..

drwx------ 3 portage portage 3 2006-04-07 17:53 work

```

Comment je peux detruire ca?

----------

## xaviermiller

chmod -R 777 ? puis \rm -rf 

peut-être y a-t-il aussi un processus qui traîne sur ces répertoire (genre Sandbox)

----------

## Trevoke

```
Tue Sep 12 09:13:06 EDT 2006

/var/tmp/portage

root@Gen2Al: pts/3: 2 files 2.5Kb -> rm -rf *

rm: cannot remove directory `gcc-4.1.0/work/gcc-4.1.0/libjava/classpath/resource/gnu/java/locale': Directory not empty

rm: cannot remove directory `gcc-4.1.1/work/gcc-4.1.1/libjava/classpath/resource/gnu/java/locale': Directory not empty

Tue Sep 12 09:13:08 EDT 2006

/var/tmp/portage

root@Gen2Al: pts/3: 2 files 2.5Kb -> chmod -R 777 gcc-4.1.0

Tue Sep 12 09:13:12 EDT 2006

/var/tmp/portage

root@Gen2Al: pts/3: 2 files 2.5Kb -> rm -rf gcc-4.1.0

rm: cannot remove directory `gcc-4.1.0/work/gcc-4.1.0/libjava/classpath/resource/gnu/java/locale': Directory not empty

```

J'ai essaye de faire un ps waux | grep sandbox et j'ai rien vu.

----------

## xaviermiller

le chemin dépasse peut-être une taille maximale : renomme les premiers répertoires et réessaie  :Wink: 

----------

## kernelsensei

installe lsof si tu l'as pas et fais 

```
lsof|grep /var/tmp/portage
```

Sinon le fs peut etre corrompu aussi...

----------

## Trevoke

k_s, et je cherche quoi dans l'output de ca?

----------

## kernelsensei

 *Trevoke wrote:*   

> k_s, et je cherche quoi dans l'output de ca?

 

Bah il me semble que ca te donne le PID ou le nom de l'appli qui utilise le repertoire/fichier demandé... Mais bon, normalement tu peux supprimer un fichier même si ce dernier est utilisé, donc ca doit pas etre ca...

T'arrives a faire un mv ?

----------

## Trevoke

Non, je peux pas les deplacer sur un autre mount point donc en effet c'est peut-etre le fs.

zut.

----------

## Leander256

Ça me rappelle que j'avais eu un problème de ce genre avec les attributs étendus du système de fichiers. Si tu as de l'ext2 ou ext3 tu peux voir ces droits étendus avec un lsattr (et modifier avec chattr), normalement tu ne devrais avoir aucun droit d'activé. Pour un autre fs il va falloir chercher un peu  :Smile: 

----------

## Temet

J'ai vu ça hier : https://forums.gentoo.org/viewtopic-t-496926.html

----------

## mornik

si tu faits un 

```
ls -i
```

 tu obtiens l'inode de ton fichier/répertoire

derrière tu fait un find sur l'inode que tu couple à un exec rm

exemple :

```

$ ls -i *

615383 foo

$ find . -inum 615383 -exec rm {} \;

```

----------

## Trevoke

Plein de super solutions mais je crois que k_s a raison.

----------

## pathfinder

stop, stop, stop.

tu nas pas l air d avoir execute la commande qu on  t a propose:

\rm -rf /toto/*    avec un antislash et en super user

moi ca a toujours fonctionne avec \

----------

## Trevoke

root@Gen2Al: pts/5: 2 files 2.5Kb -> \rm -rf gcc-4.1.1/

rm: cannot remove directory `gcc-4.1.1//test/work/gcc-4.1.0/libjava/classpath/resource/gnu/java/locale': Directory not empty

rm: cannot remove directory `gcc-4.1.1//work/gcc-4.1.1/libjava/classpath/resource/gnu/java/locale': Directory not empty

----------

## ghoti

 *Leander256 wrote:*   

> Si tu as de l'ext2 ou ext3 tu peux voir ces droits étendus avec un lsattr (et modifier avec chattr), 
> 
> Pour un autre fs il va falloir chercher un peu 

 

Tout le monde sait bien que notre ami Trevoke ne jure que par reiser4, voyons !  :Laughing: 

Mais normalement, la commande suivante devrait remonter le fs pour permettre d'utiliser chattrs avec reiser :

```
mount -o attrs /point/de/montage
```

----------

## Trevoke

La prochaine fois que je reboote, j'essaye..

J'ai /var sur le meme mount que / .

----------

## mornik

Et ma solution n'a pas marchée ?

----------

## Trevoke

Non, meme resultat.

----------

## nemo13

Pas taper 

et à partir d'un CD LIVE ?

----------

## Trevoke

C'est mon ordi au boulot, j'ai rarement envie de le redemarrer. A partir d'un LiveCD je n'ai pas a monter le FS et je pourrais faire des FSCK et tout.

----------

## ghoti

 *ghoti wrote:*   

> Mais normalement, la commande suivante devrait remonter le fs pour permettre d'utiliser chattrs avec reiser :
> 
> ```
> mount -o attrs /point/de/montage
> ```
> ...

 

 *Trevoke wrote:*   

> J'ai /var sur le meme mount que / .

 

Et ... ?

Rien ne t'empêche de remonter ta partition racine !

----------

## Trevoke

# mount -o attrs /

mount: /dev/hda7 already mounted or / busy

mount: according to mtab, /dev/hda7 is already mounted on /

----------

## geekounet

```
# mount -o remount,attrs /
```

 :Wink: 

----------

## ghoti

Arf, sorry, c'est vrai qu'il faudrait peut-être ajouter l'option "remount" !  :Embarassed: 

[EDIT] grilled, comme d'hab !  :Wink: 

----------

## Trevoke

Une fois le remount fait...

# chattr -R =s gcc-4.1.1/

gcc-4.1.1/: Inappropriate ioctl for device

gcc-4.1.1//test: Inappropriate ioctl for device

gcc-4.1.1//test/work: Inappropriate ioctl for device

gcc-4.1.1//test/work/gcc-4.1.0: Inappropriate ioctl for device

gcc-4.1.1//test/work/gcc-4.1.0/libjava: Inappropriate ioctl for device

gcc-4.1.1//test/work/gcc-4.1.0/libjava/classpath: Inappropriate ioctl for device

gcc-4.1.1//test/work/gcc-4.1.0/libjava/classpath/resource: Inappropriate ioctl for device

gcc-4.1.1//test/work/gcc-4.1.0/libjava/classpath/resource/gnu: Inappropriate ioctl for device

gcc-4.1.1//test/work/gcc-4.1.0/libjava/classpath/resource/gnu/java: Inappropriate ioctl for device

gcc-4.1.1//test/work/gcc-4.1.0/libjava/classpath/resource/gnu/java/locale: Inappropriate ioctl for device

gcc-4.1.1//work: Inappropriate ioctl for device

gcc-4.1.1//work/gcc-4.1.1: Inappropriate ioctl for device

gcc-4.1.1//work/gcc-4.1.1/libjava: Inappropriate ioctl for device

gcc-4.1.1//work/gcc-4.1.1/libjava/classpath: Inappropriate ioctl for device

gcc-4.1.1//work/gcc-4.1.1/libjava/classpath/resource: Inappropriate ioctl for device

gcc-4.1.1//work/gcc-4.1.1/libjava/classpath/resource/gnu: Inappropriate ioctl for device

gcc-4.1.1//work/gcc-4.1.1/libjava/classpath/resource/gnu/java: Inappropriate ioctl for device

gcc-4.1.1//work/gcc-4.1.1/libjava/classpath/resource/gnu/java/locale: Inappropriate ioctl for device

----------

## nemo13

Je risque d'être confus dans l'idée.  :Embarassed: 

1) un flag de trop ?

a) sous les FS du type ext2 ext3 il existe le flag i ( comme immuable )

b) un fichier ( ou rep ) qui a ce flag n'est plus effacable.

c) le même flag n'existerait-il pas en reiser ?

2) un fichier sous-marin ?

a) supposons un   :Twisted Evil:   démon qui ai ouvert un fichier sous /var/log/moi-je-bosse-avant-les-autres/

b) un peu plus tard /var est monté ailleurs sur une autre partoche.

c) ce c.. de démon continuera lui à scribouiller consencieusement dans la partition /

et tu ne pourras pas virer /moi-je-bosse-avant-les-autres/ .

le symptome de ce truc est une différence entre un df et un du 

par ex :

si df -h donne 5 giga en used pour /

et du -s -x -h : donne 4 giga

c'est que tu as un sous-marin (volontaire ou pas ) dans ta partoche qui monte /

A+

( je crains dêtre un poil confus   :Shocked:   :Sad: 

----------

## Trevoke

# -> lsattr

lsattr: Inappropriate ioctl for device While reading flags on ./netpbm-10.35.0

lsattr: Inappropriate ioctl for device While reading flags on ./gcc-4.1.1

Tu penses qu'il y a peut-etre un probleme? Genre corruption de FS?

----------

## nemo13

 *Trevoke wrote:*   

> # -> lsattr
> 
> lsattr: Inappropriate ioctl for device While reading flags on ./netpbm-10.35.0
> 
> lsattr: Inappropriate ioctl for device While reading flags on ./gcc-4.1.1
> ...

 

beuh je suis trop petit pour penser.  :Laughing: 

Cà y ressemble

edit: en étant limite parano 

rootkit ?

m'enfin pourquoi ces fichiers ?

----------

## Trevoke

J'ai fait un reboot et un fsck, c'etait un petit probleme de corruption. Merci a tous.  :Smile:  Tres instructif!

----------

## Longfield

Laisse-moi deviner, tu t'amuses avec crosstool ????

Parce que j'ai eu EXACTEMENT le même problème avec ce même dossier en runnant deux instances différentes de crosstool ! J'ai aussi réussi comme toi à l'effacer en faisant un fsck.

Mais à mon avis, pour qu'on ait les deux sur le même fichier le même comportement reproduisible, je pense que le problème vient de l'archive que le script de crosstool downloade sur les serveurs GNU.

Qu'en penses-tu ?

----------

## Trevoke

En effet, j'ai un peu fait joujou avec crosstool. Interessant..

----------

