Для изменения владельца, группы или прав на файлы и директории в Линукс вам помогут три основные команды для управления разрешениями:
<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.
Для представления в таком виде специальных прав можно указать в начале четвёртую цифру в соответствии с тем же принципом, где битам setuid
, setgid
sticky
соответствуют 4, 2 и 1. chmod 4754
установит бит setuid
наравне с вышеописанными правами.
Заметьте, что для восьмеричного представления возможна только установка всех прав сразу, нельзя добавить новое правило, как например, доступ для чтения для владельца группы — пользователь должен, учитывая существующие права, вычислить новое соответствующее значение.