Как изменить владельца и права на файлы и папки в Linux?

Для изменения владельца, группы или прав на файлы и директории в Линукс вам помогут три основные команды для управления разрешениями:

  • <strong>chown</strong> <em>пользователь</em> <em>файл</em> изменяет владельца файла;
  • <strong>chgrp</strong> <em>группа</em> <em>файл</em> меняет группу-владельца;
  • <strong>chmod</strong> <em>права</em> <em>файл</em> изменяет разрешения на файл.

Есть два способа представления прав. Из них символьное, пожалуй, более легко для понимания и запоминания. В нём используются указанные выше символы. Можно определить права для каждой категории пользователей (u/g/o), присвоив их явно (с помощью =), добавив (+) или отняв (-). Так, выражение u=rwx,g+rw,o-r даёт владельцу права на чтение, запись и исполнение, добавляет права на чтение и запись для группы-владельца и отнимает право на чтение у остальных пользователей. Права, не затрагиваемые добавлением или отъёмом, остаются без изменений. Буква a (от «all») обозначает все три категории пользователей, так что a=rx даёт всем трём категориям одинаковые права (читать и исполнять, но не записывать).

В цифровом (восьмеричном) представлении каждому праву соответствует конкретное значение: 4 — чтению, 2 — записи, 1 — исполнению. Каждая комбинация прав соответствует сумме этих чисел. Каждое значение затем присваивается своей категории пользователей, будучи записанным подряд с остальными в обычном порядке (владелец, группа, остальные).

For instance, the chmod 754 <em>file</em> command will set the following rights: read, write and execute for the owner (since 7 = 4 + 2 + 1); read and execute for the group (since 5 = 4 + 1); read-only for others. The 0 (zero) means no rights; thus chmod 600 <em>file</em> allows for read/write rights for the owner, and no rights for anyone else. The most frequent right combinations are 755 for executable files and directories, and 644 for data files.

Для представления в таком виде специальных прав можно указать в начале четвёртую цифру в соответствии с тем же принципом, где битам setuidsetgid sticky соответствуют 4, 2 и 1. chmod 4754 установит бит setuid наравне с вышеописанными правами.

Заметьте, что для восьмеричного представления возможна только установка всех прав сразу, нельзя добавить новое правило, как например, доступ для чтения для владельца группы — пользователь должен, учитывая существующие права, вычислить новое соответствующее значение.