Як змінюються права доступу при копіюванні і переміщенні файлу

# Linux HowTo (як зробити)
# Книги та керівництва
# Матеріали англійською мовою

Як змінюються права доступу при копіюванні і переміщенні файлу.

Це питання насправді складніший, ніж може здатися.
Справа в тому, що відповідь на нього залежить від багатьох умов
  • хто копіює (переміщає) файли, root або звичайний користувач
  • які програми і з якими ключами при цьому використовуються
  • копіюється файл "на порожнє місце" або там вже існує файл з таким ім'ям

Проте, спробуємо знайти кілька загальних правил, що визначають - які права доступу можуть вийде в результат.

По-перше, при копіюванні (наприклад, командою cp) створюється новий файл, а при переміщенні (наприклад, командою mv) міняється тільки місце розташування файлу (і, можливо, ім'я).

Тому, якщо "рядовий юзер" копіює файл, то діють всі ті ж правила, що і при створенні файлу. Тобто, власником копії стає користувач, який її створив, група "успадковується" від директорії, а самі права доступу визначаються параметром umask.

Звичайний же юзер, навіть використовуючи ключ -p не зможе зберегти власника і групу, але отримає permissions такі ж як у оригінального файлу. До того ж біти suid і sgid при цьому також "скидаються".

Існує ще одна ситуація, коли при копіюванні зберігаються всі атрибути доступу. Це відбувається, коли в "місці призначення" файл з таким ім'ям вже існує. Власне, в цьому випадку файл не створюється, а лише заміщується його вміст. Тому, навіть якщо цю операцію проробить звичайний користувач (природно, для цього треба, щоб йому було дозволено писати в існуючий файл), всі атрибути, в тому числі власник і група збережуться. Правда, біти suid і sgid все одно "скинуться".

А ось при переміщенні файлу всі атрибути зберігаються (навіть "небезпечні" біти suid і sgid). Однак, не забудьте, що для того, щоб звичайний користувач зміг перемістити чужий файл, він повинен мати право запису і в ту директорію, куди файл переноситься і в ту, звідки він переноситься (оскільки, там запис про файл повинна бути вилучена). Такі ситуації в нормальній системі, як правило, не зустрічаються.

Схожі статті