# Linux HowTo (як зробити)
# Книги та керівництва
# Матеріали англійською мовою
Як змінюються права доступу при копіюванні і переміщенні файлу.
Це питання насправді складніший, ніж може здатися.Справа в тому, що відповідь на нього залежить від багатьох умов
- хто копіює (переміщає) файли, root або звичайний користувач
- які програми і з якими ключами при цьому використовуються
- копіюється файл "на порожнє місце" або там вже існує файл з таким ім'ям
Проте, спробуємо знайти кілька загальних правил, що визначають - які права доступу можуть вийде в результат.
По-перше, при копіюванні (наприклад, командою cp) створюється новий файл, а при переміщенні (наприклад, командою mv) міняється тільки місце розташування файлу (і, можливо, ім'я).
Тому, якщо "рядовий юзер" копіює файл, то діють всі ті ж правила, що і при створенні файлу. Тобто, власником копії стає користувач, який її створив, група "успадковується" від директорії, а самі права доступу визначаються параметром umask.
Звичайний же юзер, навіть використовуючи ключ -p не зможе зберегти власника і групу, але отримає permissions такі ж як у оригінального файлу. До того ж біти suid і sgid при цьому також "скидаються".
Існує ще одна ситуація, коли при копіюванні зберігаються всі атрибути доступу. Це відбувається, коли в "місці призначення" файл з таким ім'ям вже існує. Власне, в цьому випадку файл не створюється, а лише заміщується його вміст. Тому, навіть якщо цю операцію проробить звичайний користувач (природно, для цього треба, щоб йому було дозволено писати в існуючий файл), всі атрибути, в тому числі власник і група збережуться. Правда, біти suid і sgid все одно "скинуться".
А ось при переміщенні файлу всі атрибути зберігаються (навіть "небезпечні" біти suid і sgid). Однак, не забудьте, що для того, щоб звичайний користувач зміг перемістити чужий файл, він повинен мати право запису і в ту директорію, куди файл переноситься і в ту, звідки він переноситься (оскільки, там запис про файл повинна бути вилучена). Такі ситуації в нормальній системі, як правило, не зустрічаються.