Окт 232011
 

Постоянно забываю как менять права доступа файлов и папок в терминале…

Циферный вид прав доступа

Я привык работать с правами доступа в циферной форме, потому кратенько разберемся какая цифра за что отвечает.

Например, у нас на папке стоят права доступа 765. Теперь по-порядку:
700 (первая цифра) — права доступа для владельца
60 (вторая цифра) — права доступа для группы
5 (третья цифра) — права доступа для всех остальных юзеров

Что же означают эты цифры. А означают они сумму прав доступа:
400 — владелец имеет право на чтение
200 — владелец имеет право на запись
100 — владелец имеет право на выполнение
40 — группа имеет право на чтение
20 — группа имеет право на запись
10 — группа имеет право на выполнение
4 — остальные имеют право на чтение
2 — остальные имеют право на запись
1 — остальные имеют право на выполнение

Тоесть, на нашем примере у нас такая математика:
700 = 400 + 200 + 100 (разрено читать + записывать + выполнять)
60 = 40 + 20 (читать и записывать разрешено, выполнять — запрещено)
5 = 4 + 1 (разрешено чтение и выполнение, но записывать запрещено)

Всё сводится к простой математике, тоесть суммированию прав доступа.

chmod (смена прав доступа)


Поменять права доступа к файлу или папке может только Владелец или root. Возьмем за пример файл test.php и уоманды будут исходить от root-а (sudo в начале строки).

#sudo chmod 744 test.php
С этой команды выплывает, что владелец может файл читать, записывать и выполнять; группа — читать; остальные юзеры тоже читать.

#sudo chmod 755 test.php
Все могут этот файл выполнять и читать, но только владелец может его удалять или изменять.

chown (смена владельца)

Для конкретного файла:
#sudo chown <имя нового владельца> <имя файла>
Для папки и всех папок/файлов, которые внутри:
#sudo chown -R <имя нового владельца> <имя каталога>

chgroup (смена группы, которая владеет файлом)

Для конкретного файла:
#sudo chown <название новой группы> <имя файла>
Для папки и всех папок/файлов, которые внутри:
#sudo chown -R <название новой группы> <имя каталога>