Проблема здесь, вероятно, связана со списком контроля доступа (ACL) папки «Музыка». ACL - это отдельная система разрешений для обычных POSIX, которые обычно перечислены в ls -l
. Некоторые другие каталоги в домашней папке и в других местах также имеют списки ACL.
Чтобы увидеть ACL в домашнем каталоге, используйте:
/bin/ls -le ~
Скорее всего, вы увидите правило, похожее 0: group:everyone deny delete
на каталог «Музыка». Как вы заметили, вы можете решить проблему с sudo
. Если вы не хотите этого делать (или не можете), у вас есть другие варианты, если вы являетесь владельцем файла. Вы можете удалить поврежденную запись из ACL каталога Music, основываясь на его индексе (0 в приведенном выше примере):
/bin/chmod -a# 0 Music
Или вы можете удалить все записи в ACL:
/bin/chmod -N Music
Теперь вы можете перемещать каталог (с учетом обычных разрешений POSIX). Если вы хотите вернуть ACL после перемещения, вы можете использовать:
/bin/chmod +a "group:everyone deny delete" Music_tmp
И используйте /bin/ls -le
снова, чтобы подтвердить, что ACL соответствует вашему желанию. Проверьте примеры ACL в man chmod
для получения дополнительной информации. В частности, это введение полезно:
Каждый файл имеет один ACL, содержащий упорядоченный список записей. Каждая запись относится к пользователю или группе и предоставляет или запрещает набор разрешений. В случаях, когда пользователь и группа существуют с одним и тем же именем, имени пользователя / группы может быть добавлено префикс «user:» или «group:», чтобы указать тип имени.
Заказ ACL
Я не думаю, что эта страница руководства объясняет правила заказа, но эта страница четко объясняет правила заказа для ACL. В частности, явное deny
правило будет применено перед явным allow
правилом. Таким образом, пока group:everyone deny delete
запись существует, вы не можете дать своему пользователю разрешение на удаление с помощью allow
правила. Это связано с тем, что в everyone
группе, в которую входят вы, отказано в разрешении , и это правило будет применено в первую очередь.