it-swarm-eu.dev

Nelze smazat soubor, i když běží jako root

Jsem v procesu migrace počítače z RHEL 4 na 5. Spíše než ve skutečnosti provedli upgrade jsme vytvořili nový VM (oba stroje jsou v cloudu) a já jsem v procesu kopírování dat mezi nimi.

Narazil jsem na následující soubor, který musím z nového počítače odstranit, ale nemůžu, i když běží jako root:

-rw-------  1 2003 2003  219 jan 11 14:22 .bash_history

Tento soubor je uvnitř/home/USER /, kde USER je účet člověka, který stroj postavil. Nemá účet na starém počítači, takže se snažím odstranit jeho domovskou složku, aby se nový stroj shodoval se starým, ale dostanu následující chybu:

rm: ne peut enlever `.bash_history': Opération non permise

(přeloženo z francouzštiny: nelze odstranit XXX, operace není povolena)

Zkusil jsem použít následující příkaz, ale to nijak nezměnilo:

chattr -i .bash_history

Je jedinou možností vytvoření uživatele pomocí ID 2003, nebo existuje jiná možnost?


Upravit

Zkusil jsem použít rm -f a dostávám stejnou chybu. Stejným druhem chyby dostanu pomocí chmod 777 za prvé.

Byl jsem schopen chown složku, která obsahuje soubor, který se pokouším odstranit, takže to je:

drwx------ 2 root root 1024 jan 24 15:58 USER

Edit2

Spuštění příkazu lsattr, jak navrhuje Angus, poskytlo následující výstup:

-----a------- USER/.bash_history
------------- USER/..
------------- USER/.

Soubor je označen pouze jako připojený - při změně tohoto příznaku pomocí chattr -a .bash_history Soubor jsem mohl smazat.

54
Rich

Zkontrolujte oprávnění adresář. Chcete-li soubor v něm smazat, měli byste jej zapsat

chmod ugo+w .

a neměnné nebo pouze připojené:

chattr -i -a .

Zkontrolujte pomocí ls -la a lsattr -a.

59
angus

Měl jsem podobný problém, ale předtím jsem vyzkoušel svá oprávnění a chattr bez úspěchu. Kořen v terminálu. CD do adresáře.

Co pro mě však fungovalo, bylo zkontrolovat oprávnění adresáře, kde se nachází nepříjemný soubor - pokud bude v pořádku, pokračujte k:

chmod ugo+w filename

to se nezdařilo - pak:

chattr -i -a filename 

který byl přijat - tehdy

chmod ugo+w 

který byl přijat

rm filename

a bylo to pryč.

Fedora 25 na pracovní stanici hp.

10
Keith Mann

'Sudo' může spustit příkaz 'rm' pomocí stejné uživatelské skupiny

NOTE : nejsem si jistý, jestli to bude fungovat i pro ID, jako jste vy.

Příklad:

ls /path/to/dir_being_deleted
  drwxrwxrwx 2 nfsnobody nfsnobody   4096 Mar  8 06:55 .
  drwxrwxrwx 7 nfsnobody nfsnobody   4096 Mar  8 06:57 ..
  -rwxrwxrwx 1 nfsnobody nfsnobody      0 Mar  8 06:55 filename.txt

Sudo -u nfsnobody -g nfsnobody rm -rf /path/to/dir_being_deleted
1
awltux