Il /tmp
directory è convenzionalmente contrassegnata con la cancellazione limitata flag, che appare come una lettera di autorizzazione t
o T
in ls
uscita.
Eliminazione limitata implica diverse cose. Nel caso generale, implica che solo il proprietario del file, o il proprietario di /tmp
stesso, può eliminare un file/directory in /tmp
.
Non puoi eliminare il file, perché non sei il proprietario, che è root
. Prova a eseguire rm
con sudo
che probabilmente hai dimenticato.
sudo rm /tmp/test
Più specificatamente solo per Linux, il flag di eliminazione limitata (su una directory scrivibile da tutti come /tmp
) anche abilita il protected_symlinks
, protected_hardlinks
, protected_regular
e protected_fifos
restrizioni, che rispettivamente in tali directory impediscono agli utenti di seguire collegamenti simbolici che non possiedono, impediscono agli utenti di creare collegamenti fisici a file che non possiedono, impediscono agli utenti di aprire FIFO che non possiedono e impediscono agli utenti di aprire file esistenti che non possiedono quando si aspettavano di crearli.
Questo ti sorprenderà con errori di autorizzazione quando fai varie altre cose come root
quando lo fai usa sudo
.
Maggiori informazioni su domande come "Comportamento delle autorizzazioni di collegamento fisico diverso tra CentOS 6 e CentOS 7", "Collegamento simbolico non funzionante come previsto quando si cambia utente" e "Autorizzazioni di gruppo per root non funzionanti in /tmp".
Il problema sembra essere la parte appiccicosa di /tmp
.
$ ls -ld /tmp drwxrwxrwt⃝ 1 root root 1044 Mar 13 12:09 /tmp
https://en.wikipedia.org/wiki/Sticky_bit
Quando viene impostato lo sticky bit di una directory, il filesystem tratta i file in tali directory in un modo speciale in modo che solo il proprietario del file, il proprietario della directory o l'utente root possano rinominare o eliminare il file. Senza lo sticky bit impostato, qualsiasi utente con autorizzazioni di scrittura ed esecuzione per la directory può rinominare o eliminare i file contenuti, indipendentemente dal proprietario del file. In genere questo è impostato nella directory /tmp per impedire agli utenti ordinari di eliminare o spostare i file di altri utenti.