Impossibile eliminare un file - autorizzazione negata - perché?


12
[db2inst1][testing ~/sqllib/db2dump] rm db2diag.log 
rm: cannot remove `db2diag.log': Permission denied
[db2inst1][testing ~/sqllib/db2dump] id
uid=1002(db2inst1) gid=107(db2iadm1) groups=16(dialout),33(video),107(db2iadm1),108(db2fadm1),1001(eduserver)
[db2inst1][testing ~/sqllib/db2dump] ll
total 1381172
-rw-rw-rw- 1 root db2iadm1 1412931954 Oct  2 10:24 db2diag.log

L'utente attualmente registrato (db2inst1) fa parte del gruppo db2iadm1 che dispone dell'autorizzazione w per il file che si desidera eliminare. Ma non ci riesco. Qualche idea sul perché?

aggiornamento: autorizzazione per la directory principale

drwxr-sr-x 2 root db2iadm1 4096 ago 22 14:39 db2dump


2
Quali sono le autorizzazioni sulla directory principale? Vedi Perché è possibile rmrimuovere i file di sola lettura?
ire_and_curses il

Risposte:


11

Per eliminare un file, è necessario disporre delle autorizzazioni di scrittura sulla directory in cui risiede il file. Quando si rmesegue un file, effettua la unlinkchiamata di sistema che rimuove il nome dalla directory. Questo elimina il file solo se è l'ultimo collegamento rimanente all'inode.

Puoi trovare maggiori informazioni in unlink (2) .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.