Права на файлы и папки в Linux, FreeBSD и MacOS

Сегодня хочется задеть одну очень скользкую тему: права (и обязанности) на файлы в системах, основанных на Unix.

Установить права доступа 

  1. Откройте страницу записи, уровень доступа к которой необходимо изменить.
  2. В меню Действия выберите команду Настроить права доступа (Рис. 1). Рис. 1 — Переход к настройке прав доступа   
  3. На открывшейся странице прав доступа нажмите кнопку Добавить и выберите в меню тип операции с данной записью. Например, чтобы предоставить право доступа на редактирование записи, выберите команду Право на изменение.
  4. В открывшемся окне выберите пользователя или группу пользователей, для которых должно действовать добавляемое право доступа. Например, чтобы предоставить доступ на редактирование записи для всех сотрудников компании, выберите группу пользователей “Все сотрудники компании”. В результате на соответствующую деталь страницы прав доступа будет добавлено новое правило, которое определяет доступ выбранного пользователя или группы пользователей к выбранной операции с текущей записью. По умолчанию право доступа к операции всегда “Разрешено”.
  5. Нажмите кнопку Сохранить.

Изменение прав на файлы и папки в ISPmanager5

Для того чтобы изменить права на тот или иной файл/папку, заходим в раздел «Менеджер файлов → WWW → к необходимой папке или файлу»

Выбираем нужную папку или файл и нажимаем «Атрибуты»

В открывшемся окне устанавливаем необходимые права:

  • права на чтение, запись и исполнение для владельца. Право на исполнение для каталога означает право просмотра его содержимого
  • права на чтение, запись и исполнение для группы. Право на исполнение для каталога означает право просмотра его содержимого
  • права на чтение, запись и исполнение для всех, кто не является владельцем и не принадлежит группе. Право на исполнение для каталога означает право просмотра его содержимого
Читайте также:  Настраиваем Linux Mint

В графе «Изменить дочерние элементы» мы можем изменить владельца и права доступа для файлов и (или) каталогов.

Нажимаем «Ок»

Права в Unix

Здесь мы рассмотрим базовую модель прав в Unix (модель дискреционного управления доступом), без всяких расширений типа атрибутов файлов, эффективных прав и прочих липких битов.

Суть модели прав довольно проста:

  1. У каждого файла есть владелец. Владелец устанавливает права доступа на свои файлы (например, командой chmod).
  2. В системе есть супер-пользователь (root), который устанавливает владельцев файлов (например, командой chown).

Теперь подробнее по первому пункту.

Доступ по пользователям делится на 3 группы

  1. Владелец (user) — тот самый, что имеет возможность изменять права доступа.
  2. Группа (group) — какая-то группа пользователей, которая должна иметь определённые права на файл. Посмотреть группы пользователя можно командой

    $ groups gosha gosha : gosha adm cdrom sudo dip plugdev lpadmin sambashare libvirtd

    — пользователь gosha состоит в группах: gosha adm cdrom sudo dip plugdev lpadmin sambashare libvirtd.

    С другой стороны можно посмотреть всех пользователей, состоящих в группе:

    $ grep cdrom /etc/group cdrom:x:24:gosha

    Не самый элегантный способ, но работает на всех Unix. Также можно использовать утилиты lid и members.

  3. Все другие (other) — любой пользователь, существующий в системе.

Сами права доступа также делятся на 3 группы

  1. Права на чтения (read или «4» в битовой маске) — право читать файл или читать содержимое директории.
  2. Права на запись (write или «2» в битовой маске) — право писать в файл или создавать файлы в директории.
  3. Право на исполнение (execute или «1» в битовой маске) — право запускать файл (программу, записанную в файле) или переходить по директории вглубь (например, сделать cd в поддиреторию).
Читайте также:  Встроенные СНПЧ — что это и как устроено?

Битовая маска прав доступа

Давайте посмотрим права на папку /bin, например, с помощью команды ls -l / | grep bin :

drwxr-xr-x 2 root root 4096 май 6 03:24 bin |||||||||| |||||||||+-исполнение для всех остальных — разрешено ||||||||+—запись для всех остальных — НЕ разрешено |||||||+—чтение для всех остальных — разрешено ||||||+—-исполнение для группы владельца — разрешено |||||+——запись для группы владельца — НЕ разрешено ||||+——чтение для группы владельца — разрешено |||+——-исполнение для владельца — разрешено ||+———запись для владельца — разрешено |+———чтение для владельца — разрешено +———-тип файла — диретория

Кроме указанного представления полномочий доступа (символьного), существует так же и числовое представление. Для общего понимания, приведу таблицу соответствия числового (двоичного и десятичного) значения прав доступа и буквенного:

владелец группа остальные
буквенное rwx r-x r-x
числовое (десятичное) 421 401 401
итоговое (сумма) 7 5 5

В приведенной таблице показано, что право чтения, соответствует значению 4, право записи — 2, право выполнения — 1, отсутствие права — 0, складывая данные показатели, можно представлять и назначать права в числовом виде. Таким образом, вместо drwxr-xr-x можно написать 755. Часто можно увидеть именно числовое определение прав доступа — теперь вы понимаете, что это значит.

Часто можно увидеть на файле права 644 — постарайтесь понять, что это значит, чтобы закрепить полученные знания.

chgrp

Принцип работы тот же, что и у chmod, тоже действует параметр -R. Группу можно вводить как в текстовом формате, так и в цифровом. Запомните главные обозначения:

  • 0 — wheel
  • 20 — staff
  • 80 — admin
Читайте также:  Как в Windows 10 запустить Kali Linux с графической оболочкой

Например:

chgrp -R 80 ~/Music

сделает вашу папку с музыкой принадлежащей группе администраторов.

С командой chgrp связано две опции — -v и -c. Очень полезны, так как позволяют нам получать информацию о том, что же именно происходит, какие действия совершаются в результате выполнения. Первая, -v, показывает всю информацию, даже тогда, когда и менять-то ничего не пришлось, а вторая показывает только факт смены прав. Это может быть удобнее при больших количествах файлов.

Чтобы поменять самого владельца, нужна команда