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?
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
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.
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
.
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.
'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