Тип |
программа для изменения прав доступа к файлам и директориям |
---|---|
Разработчик | |
Написана на | |
Операционная система | |
Последняя версия |
8.5 (23 апреля 2010) |
Лицензия | |
Сайт |
gnu.org |
chmod (от англ. change mode) — программа для изменения прав доступа к файлам и директориям. Название происходит от программы ОС Unix chmod, которая, собственно, изменяет права доступа к файлам, директориям и символическим ссылкам.
Содержание |
Права записываются сразу для трёх типов пользователей: владельца-пользователя файла, пользователей, входящих в группу-владелец и для прочих пользователей. Аргумент команды chmod, задающий разрешения, может быть записан в двух форматах: в числовом и в символьном.
Для понимания сути задания прав в Unix-like системах, нужно знать представление чисел в восьмеричной и двоичной системах счисления
пользователь | группа | остальные |
---|---|---|
7 | 5 | 5 |
111 | 101 | 101 |
rwx | r-x | r-x |
u | g | o |
Пример символьной записи: 'rwxr-xr-x'.
Примером числовой записи может служить '755', которая эквивалентна записанной выше строковой записи: каждое право имеет числовой код и может быть задано вручную:
Суммировав эти коды можно получить символьную запись. Например, chmod 444 {имяфайла}: 400+40+4=444 — все имеют право только на чтение.
Помимо стандартных 'rwx' значений команда CHMOD осуществляет ещё управление битами SGID, SUID и T. Установленные атрибуты SUID или SGID позволяют запускать файл на выполнение с правами владельца файла или группы соответственно.
Для SUID — вес 4000, а для SGID — 2000.
Пример chmod 4555 {имяфайла} — все имеют право на чтение и выполнение, но запускаться файл на исполнение будет с правами владельца. Для директории: установка SGID приведёт к установке принадлежности каждого нового создаваемого файла к той же группе, к которой принадлежит сама директория, а не к основной группе владельца, как это происходит по умолчанию. SUID для директории не имеет смысла[1].
t-бит используется с директориями. Когда t-бит для директории не установлен, файл в данной директории может удалить любой пользователь, имеющий доступ на запись к данному файлу. Устанавливая t-бит на директорию, мы меняем это правило таким образом, что удалить файл может только владелец этого файла. Следуя приведённой выше кодировке, t-бит имеет вес 1000.
Значениями по умолчанию являются:
Так происходит потому, что флаг «исполнения» по-разному действует на файлы и директории. Для директории он означает возможность войти в неё.
Например, можно сделать из командной строки:
Следующая команда выполнит рекурсивное применение правил для всех файлов в директории "/home/test", а также для всех файлов во всех поддиректориях:
# find /home/test -type f -exec chmod 644 {} \;
Следующая команда выполнит рекурсивное применение правил для всех директорий в директории "/home/test", а также для всех директорий во всех поддиректориях:
# find /home/test -type d -exec chmod 755 {} \;
Того же результата можно добиться и без использования find (обратите внимание на заглавную X):
# chmod -R go=rX,u=rwX .
То же:
# chmod -R 755 /home/test.
chmod(1)
— страница справки man по пользовательским командам GNU/Linux (англ.)Это заготовка статьи о свободном программном обеспечении. Вы можете помочь проекту, исправив и дополнив её. |
Chmod.