Problem tutaj prawdopodobnie dotyczy listy kontroli dostępu (ACL) folderu Music. ACL to oddzielny system uprawnień niż zwykłe systemy POSIX, które zwykle są wymienione przez ls -l
. Niektóre inne katalogi w folderze domowym i gdzie indziej również zawierają listy ACL.
Aby zobaczyć listy ACL w katalogu domowym, użyj:
/bin/ls -le ~
Prawdopodobnie zobaczysz regułę podobną 0: group:everyone deny delete
do katalogu Muzyka. Jak zauważyłeś, możesz zastąpić problem z sudo
. Jeśli nie chcesz tego robić (lub nie możesz), masz inne opcje, biorąc pod uwagę, że jesteś właścicielem pliku. Możesz usunąć obraźliwy wpis z listy ACL katalogu Music na podstawie jego indeksu (0 w podanym powyżej przykładzie):
/bin/chmod -a# 0 Music
Lub możesz usunąć wszystkie wpisy z listy ACL:
/bin/chmod -N Music
Teraz możesz przenosić katalog (z zastrzeżeniem zwykłych uprawnień POSIX). Jeśli chcesz przywrócić listę ACL po przeniesieniu, możesz użyć:
/bin/chmod +a "group:everyone deny delete" Music_tmp
I użyj /bin/ls -le
ponownie, aby potwierdzić, że lista ACL jest taka, jak chcesz. Sprawdź przykłady ACL w, man chmod
aby uzyskać więcej informacji. W szczególności to wprowadzenie jest pomocne:
Każdy plik ma jedną listę ACL, zawierającą uporządkowaną listę wpisów. Każdy wpis odnosi się do użytkownika lub grupy i przyznaje lub odrzuca zestaw uprawnień. W przypadkach, gdy użytkownik i grupa istnieją o tej samej nazwie, nazwa użytkownika / grupy może być poprzedzona przedrostkiem „użytkownik:” lub „grupa:” w celu określenia rodzaju nazwy.
Zamówienie ACL
Nie sądzę, że strona podręcznika wyjaśnia zasady dotyczące zamawiania, ale ta strona wyjaśnia zasady porządkowania list ACL. W szczególności wyraźna deny
reguła zostanie zastosowana przed wyraźną allow
regułą. Tak długo, jak group:everyone deny delete
wpis jest na swoim miejscu, nie można dać użytkownikowi pozwolenia na usunięcie za pomocą allow
reguły. Wynika to z tego everyone
, że grupie odmawia się pozwolenia , które obejmuje ciebie, i ta reguła zostanie zastosowana jako pierwsza.