Проблема тут, ймовірно, пов'язана зі списком контролю доступу (ACL) папки "Музика". ACL - це окрема система дозволів до звичайних POSIX, які зазвичай перераховані ls -l
. Деякі інші каталоги в домашній папці та інших місцях також мають ACL.
Щоб переглянути ACL в домашньому каталозі, використовуйте:
/bin/ls -le ~
Ви, ймовірно, побачите правило, подібне 0: group:everyone deny delete
до каталогу музики. Як ви зазначали, ви можете вирішити цю проблему sudo
. Якщо ви не хочете цього робити (або не можете), у вас є інші варіанти, враховуючи, що ви власник файлу. Ви можете зняти зловмисний запис із списку ACL музичного каталогу, виходячи з його індексу (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
Я не думаю, що "man man" пояснює правила щодо замовлення, але ця сторінка чітко пояснює правила замовлення ACL. Зокрема, перед явним deny
правилом буде застосовано явне allow
правило. Отже, доки group:everyone deny delete
запис введено, надати користувачеві дозвіл на видалення за допомогою allow
правила неможливо . Це тому, що в дозволі відмовлено everyone
групі, до якої ви входили, і це правило буде застосовано спочатку.