Il problema qui probabilmente ha a che fare con l'elenco di controllo di accesso (ACL) della cartella Music. L'ACL è un sistema di autorizzazione separato rispetto ai normali POSIX normalmente elencati da ls -l
. Alcune altre directory nella cartella Home e altrove hanno anche ACL.
Per visualizzare gli ACL nella home directory, utilizzare:
/bin/ls -le ~
Probabilmente vedrai una regola come 0: group:everyone deny delete
per la directory Music. Come hai notato, potresti risolvere il problema sudo
. Se non vuoi farlo (o non puoi), hai altre opzioni, dato che sei il proprietario del file. Puoi rimuovere la voce offensiva dall'ACL della directory Music, in base al suo indice (0 nell'esempio che ho dato sopra):
/bin/chmod -a# 0 Music
Oppure puoi eliminare tutte le voci nella LCA:
/bin/chmod -N Music
Ora puoi spostare la directory (soggetto alle normali autorizzazioni POSIX). Se si desidera ripristinare l'ACL dopo lo spostamento, è possibile utilizzare:
/bin/chmod +a "group:everyone deny delete" Music_tmp
E utilizzare di /bin/ls -le
nuovo per confermare che l'ACL è come desiderato. Controlla gli esempi ACL man chmod
per maggiori informazioni. In particolare, questa introduzione è utile:
Ogni file ha un ACL, contenente un elenco ordinato di voci. Ogni voce fa riferimento a un utente o gruppo e concede o nega una serie di autorizzazioni. Nei casi in cui un utente e un gruppo esistono con lo stesso nome, il nome utente / gruppo può essere preceduto da "utente:" o "gruppo:" per specificare il tipo di nome.
Ordine ACL
Non credo che la pagina man spieghi le regole relative all'ordinamento, ma questa pagina spiega chiaramente le regole d'ordine per gli ACL. In particolare, deny
verrà applicata una allow
regola esplicita prima di una regola esplicita . Pertanto, fintanto che la group:everyone deny delete
voce è attiva, non è possibile autorizzare l'utente a eliminare con una allow
regola. Questo perché l'autorizzazione viene negata al everyone
gruppo, che include te, e tale regola verrà applicata per prima.