Изменение прав на файлы или папки в Linux. Настройка прав для файлов и папок Требуются ли права на файлы уровня 777


Работая в Linux (равно как и во FreeBSD и Windows), нужно не забывать о правах доступа на файлы и папки. Часто это касается директории Web серверов на OS Linux когда необходимо правильно выставить права на директории и файлы с точки зрения безопасности. Выставлять права отдельно на каждый файл или папки не совсем правильное решение когда этих файлов и папок десятки, а то и сотни.

Ниже приведенные примеры помогут удобно и быстро выставить права файлов или папок в кратчайшие сроки.

Изменить владельца для папки и всех файлов лежащих в этой папке

Чтобы сменить владельца, в Unix используется команда chown . Первая группа параметров данной команды — опции. Для того, чтобы изменения коснулись не только данной директории, но и всех поддиректорий, нужно применить команду рекурсивно — с параметром «-R».

Вторая группа параметров — это владелец и группа владельцев, разделённые двоеточием (можно не устанавливать группу — тогда это просто логин владельца) — «user:group» или «user».

Третья же группа параметров — это пути до папок / файлов, к которым нужно применить команду. Например, «/home/user/dir/».

Итак, команда смены владельца и группы владельцев для директории и всех поддиректорий с файлами будет выглядеть так:

Sudo chown -R user:group /home/user/dir/

Sudo говорит о том, что команда будет исполняться с повышенными привилегиями — обычный пользователь не способен изменить ни владельца, ни группу.

Изменить права доступа на файл или папку

Помимо владельца, можно настроить, что же может этот самый владелец и группа, а также все остальные. В Unix идёт разделение возможностей именно таким образом — есть 3 группы прав: владелец , группа владельцев и другие . И права, что можно присвоить каждой группе:

  • Право на запуск файла. Оно же — право на проход по директории (если устанавливаем права на директории).
  • Право на изменение файла. Оно же — право на создание и удаление файлов и папок в директории (опять же, если устанавливается для папки).
  • И право на чтение файла. Для папок — это право на просмотр содержимого папки.

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

Права на доступ изменяются командой chmod .

  • Изменять файл имеет право только владелец, группа владельце может читать, остальные — ничего не могут: chmod 640 /media/share/file.txt
  • Создавать файлы в папке могут все, но видит их только владелец: chmod 622 /media/share/messages/
  • Есть программа, которая не хочет запускаться — не хватает прав на исполнение. Нужно, чтобы все могли её запустить, но никто, кроме владельца, не мог её редактировать: chmod 711 /media/share/exec

Для рекурсивного изменения прав используется опять же ключ «-R». Например, chmod -R 700 /home/user — доступ к файлам и папкам /home/user останется только у владельца.

Стоит заметить, что изменять права на файлы и директории могут администраторы и владелец этих папок и файлов.

Изменение прав только на файлы или только на папки

Вышеприведённый пример рекурсивного изменения прав на файлы и папки в /home/user/ не так уж и хорош, как может показаться. Мы сделали, чтобы теперь и обычные файлы могли запускаться. Это может привести к проблемам, если среди фалов были примеры программ, на которые специально были выставлены права без запуска, дабы случайно не исполнить хранимые программы. Если бы мы поставили права 600 — мы бы потеряли доступ к подпапкам и файлам, лежащим в них, ибо без права «на исполнение» (оно же — «право перехода по папке»), мы бы не смогли до них добраться.

Так что мухи — отдельно, котлеты — отдельно: зададим права сначала для одних, потом — для других. В этом нам поможет команда find .

Find /home/user -type f -exec chmod 600 {} \;

Немного магии, но если присмотреться, всё понятно: найти в /home/user все объекты, типа file (f) и выполнить для них chmod 600.

Или же для директорий:

Find /home/user -type d -exec chmod 700 {} \;

Крайне полезны могут быть утилиты find, grep для поиска и фильтрации работы команд. chown и chmod также умеют больше, чем здесь описано. Есть ещё chattr — для смены атрибутов папок и файлов (про атрибуты — в другой раз). Все выше перечисленные утилиты имеют хорошую документацию.

Разработанный ещё в 70-е годы прошлого века механизм распределения прав в операционных системах оказался настолько успешным, что используется в UNIX-системах до сих пор, то есть уже больше сорока лет.

Права доступа 777 - что это?

Базовый принцип способа распределения доступа включает в себя существование обязательных атрибутов, таких как имена пользователей системы, а также их групп. Почти очевидным является тот факт, что в Linux у каждого юзера может быть только одно имя, которое должно быть уникально в рамках этой системы. С помощью никнейма пользователь входит в систему, то есть проходит авторизацию. Помимо этого, операционка содержит конечное число групп пользователей. Каждый из них может входить в состав одной или нескольких групп. Редактировать свойства, создавать и удалять группы может суперпользовать - root. Участники различных групп имеют различные права для действий в системе. Так, например, администратор владеет большими правами, чем гость.

Индексный дескриптор (который есть у каждого файла) содержит логин владельца и название группы пользователей, имеющей права к данному файлу.

При создании файла его владельцем становится пользователь, от имени которого запущен этот процесс. Группа новосозданного файла так же определяется с помощью идентификатора группы действующего процесса. При дальнейшей работе все эти значения можно изменить при помощи команд консоли, о которых далее пойдет речь.

Как изменить права доступа

Команда chmod может изменить режим пользовательского доступа к файлу. Как-либо менять эти права разрешено исключительно его владельцу либо суперпользователю. В Unix-системах код принято задавать в виде числа в восьмеричной форме, или при помощи специальных мнемонических знаков (букв). Использование каждого способа имеет свои преимущества и недостатки. Так, с помощью цифрового указания прав доступа системный администратор сможет быстрее настроить нужный тип доступа, а с помощью мнемонических кодов он сможет сделать это более точно - например, добавить или удалить право на запись, либо запретить право на чтение.

В качестве первого аргумента консольной команды chmod выступает спецификация пользовательских прав доступа, а это есть мнемоническое обозначение, или восьмеричное число. Второй и следующий аргументы это названия файлов, к которым мы пытаемся изменить права доступа. При установке прав в виде трех чисел, первая цифра определяет права для владельца, 2-ая для группы, и третья для всех остальных юзеров.

Мнемонические обозначения прав доступа

Доступ к файлам в системе прав имеет такие вариации:

  • r - доступ к чтению файла;
  • w - право редактирование данных (но не удаление);
  • x - возможость запускать файл к исполнению.

По отношению к каталогам действует такия система прав:

  • r — пользователь может читать любые файлы директории;
  • w — с этими правами можно создавать и удалять файлы в папке, даже если некоторые из них в каталоге принадлежат другому юзеру;
  • x — обозначает право входа в директорию. Если вы имеете права w к вложеной папке но не имеете прав на папку уровнем выше, то и к своей папке никак не пробьетесь.

Всего возможно 8 различных комбинаций, которые приведены на рисунке ниже.

С помощью таблицы ниже вы сможете понять, как реализовать сложные варианты назначения прав, а также как установить права доступа 777, используя мнемонические спецификации chmod.

Как установить права доступа 777 через SSH

Приведем некоторые примеры использование команды chmod:

  • chmod 711 file_name.txt.

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

При использования кода 775 мы предоставим владельцу и всей его группе полный перечень прав. Остальные же пользователи не смогут выполнять изменения в файле. Нужно сказать, что для указания файла только по его собственному имени, необходимо находится в директории, где расположен этот файл. В ином случае вы можете переместиться в эту директорию командой cd имя_директории/имя_вложеной_директории или использовать следующую структуру:

  • chmod 775 /var/bin/file_name.txt.

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

  • chmod -R 711 file_name.

В итоге, как выставить права доступа 777 для файла или каталога, не будет проблемой - просто необходимо залогиниться на вашем веб-сервере через SSH и выполнить команду:

  • chmod 777 имя_файла.

Как установить права доступа 777 в контрольной панели сервера

Вы также можете реализовать аналогичную процедуру через визуальный интерфейс FTP клиента FileZilla или SFTP клиента WinSCP. Для этого необходимо будет выполнить авторизацию на вашем сервере в одной из этих программ, в визуальном интерфейсе выбрать ваш файл или папку, затем нажать правую клавишу мыши и установить галочки рядом с нужными правами.

Иногда, в случае срочной надобности, у вас может не быть доступа к Windows-клиенту, поэтому можно осуществить смену прав доступа через контрольную панель веб-сервера. Для этого, используя файловый менджер вашей контрольной панели, выберите необходимые файлы и нажмите на кнопку Change Permissions ("Смена прав"). Далее необходимо будет так же отметить всё галочками, и теперь вопрос, как установить права доступа 777 на папку больше не будет для вас сложным.

Согласитесь, бывает в разговоре, когда один человек, что-то пытаясь популярно объяснить другому, зачастую незнакомыми терминами способен последнего загнать в «непонятки» еще больше. Вот и у меня с читателями так иногда бывает. Пишешь вроде бы очевидную тебе вещь типа «положите файл в такую-то папку на сервере и выставите ей права…», а читатели начинают спрашивать — Как это положить? Или — Какие еще права?

Будем сегодня восполнять этот пробел в знаниях. Итак, вы уже имеете свой блог или сайт на и соответственно получили представление об административной панели управления WP. Через админку можно сделать многое, но далеко не все.

Как, например, изменить отдельно взятый файл вашей установленной темы или плагина? Для этого вам необходим доступ к вашему серверу, на котором собственно все это и хранится. Что бы получить доступ к своим файлам на сервере вам необходимо настроить FTP соединение с ним. Как это сделать?

Как настроить FTP?

Вам понадобится программа — файлменеджер типа Total Commander или FileZilla . Первый платный (хотя, в рунете это понятие, как вы понимаете, довольно условно) и мощный, универсальный инструмент для работы с файлами и папками. Второй бесплатен и представляет собой похожий инструмент, но заточенный изначально для работы именно в сетях. Не буду тут очень подробно на них останавливаться, потому что это две темы для отдельных, больших статей, а отмечу только, что раньше использовал Total Commander, но в последнее время перешел на FileZilla. Второй работает быстрее, во всяком случае у меня.

Используем Total Commander

Для добавления и настройки нового FTP соединения скачайте и запустите Total Commander. В верхнем меню выберите – Сеть – Соединиться с FTP сервером или нажмите CTRL+F на клавиатуре. Перед вами появится окошко, где выберите – Добавить .

В новом окне — Настройка FTP соединения , вам нужно будет заполнить четыре первых, пустых поля данными с вашего сервера. Где взять данные? У вашего хост провайдера.

Я покажу пример на основе хостинг сервиса . Если у вас другой провайдер, то соответственно, вам нужно взять их из вашей панели управления для этого хостинга. Не нашли? Тогда обратитесь в тех поддержку или просто поищите в справке. Как правило, все подобные вопросы давно и подробно расписаны у хостинговых компаний.

Владельцы сервиса Hostenko заходят в личный кабинет и кликают по — Управление хостингом под строкой с вашим доменом. Тут вся необходимая для FTP соединения информация.

Возвращаемся к нашему Total Commander.

Первое поле Имя соединения . Задайте произвольной имя для вашего будущего соединения. Как правило, тут просто вводят имя сайта.

Второе поле Сервер (Порт) . Сюда скопируйте адрес вашего хоста типа — ftp://xxx.hostenko.com. Префикс можно не копировать, так что оставьте только — xxx.hostenko.com

Третье поле Учетная запись . Тут введите ваш логин.

Четвертое поле Пароль . Тут соответственно, пароль.

Все. Далее жмете кнопку ОК и возвращаетесь в окно Соединение с FTP сервером . В списке появилось новое соединение с именем, которое вы задавали в первом поле. Выбираете его и кликаете на — Соединиться . Если соединения не происходит, зависает и т д., значит вы, где то таки «накосячили» с данными. Проверьте все внимательно еще раз.

Пару слов о другом файлменеджере – FileZilla. Интерфейс там несколько отличается от рассмотренного нами выше, однако суть и вводимые параметры для настройки FTP соединения остаются неизменными.

Как задать права папкам?

После того как вы успешно соединились со своим сервером, в окне Total Commander увидите корневую директорию своего сайта.

Находите нужную папку. Выделяете её и идете наверх, в главное меню – Файлы – Изменить атрибуты . В появившемся окне — Изменение атрибутов внизу, в левом углу выставляете требуемые права. Можете сделать то же самое путем отметок в соответствующих чекбоксах выше. Далее нажимаете ОК. Необходимые права на папку установлены.

Используем FileZilla

Можете использовать специальный «Менеджер сайтов» доступный по клику в верхней, левой части меню. Кликнув вы попадете в новое окно для добавления сайтов. Нажимаем кнопку «Новый» и вводим название. Затем заполняем всё те же данные с хостинга справа. В выпадающем списке Тип входа выбираем — «Нормальный».

Для того что бы выставить права на папку в клиенте FileZilla, переходим к своим файлам на сервере, правой кнопкой мыши кликаем на нужную папку и выбираем — «Права доступа к файлу». Указываем нужные права с помощью чекбоксов или просто введя цифру.

Теперь вы знаете, как настроить FTP соединение и при необходимости изменить права на папки с файлами. Уверен, в будущем, вам не раз потребуется, что-то вручную скопировать на сервер или оттуда, на свой комп.

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

Удачи вам и надежных соединений.

(Изначальное значение прав доступа файла file - rwxrwxrwx – полный доступ для всех) Отмена разрешения на выполнение файла для всех пользователей и групп:

$ chmod a-x file (rw-rw-rw-)

Отмена записи в файл группой и остальными пользователями:

$ chmod go-w file (rw-r–r–)

Разрешение выполнения файла владельцем:

$ chmod u+x file (rwxr–r–)

Предоставление группе тех прав доступа, которыми владеет владелец файла:

$ chmod g=u file (rwxrwxr–)

Отмена чтения и запись в файл пользователям группы и другим пользователям:

$ chmod go-rw file (rwx–x-)

Примеры использования команды chmod в абсолютном режиме

Разрешение чтения, записи, выполнения файла file всеми пользователями и группами (полный доступ):

$ chmod 777 file (rwxrwxrwx)

Установка разрешений на чтение и запись для владельца, группы и остальных пользователей:

$ chmod 666 file (rw-rw-rw-)

Установка полного доступа к файлу для владельца и лишь чтения для группы и остальных пользователей:

$ chmod 744 file (rwxr–r–)

Установка полного доступа к файлу владельцу файла и запрет доступа группе и другим пользователям:

$ chmod 700 file (rwx--)

Установка разрешений на чтение и запись для владельца файла и лишь чтения для группы и остальных:

$ chmod 644 file (rw-r–r–)

Установка разрешений на чтение и запись владельцу файлу и его группе и запрет доступа для других:

$ chmod 640 file (rw-r-–)

Установка доступа к файлу с разрешением чтения для всех пользователей и групп:

$ chmod 444 file (r–r–r–)

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

$ chmod 755 file (rwxr-xr-x)

Разрешение доступа к файлу на чтение и выполнение пользователю и остальным и запрет доступа для группы:

$ chmod 505 file (r-x-r-x)

Если вы хотите назначить права доступа на все файлы в текущем каталоге, просто поставьте после назначаемых прав доступа знак * (звездочка):

$ chmod 755 *

В результате выполнения этой команды владелец получит полные права (чтение, изменение, выполнение) на все файлы текущего каталога, а группа и другие пользователи – только чтение и выполнение. Если вы хотите, чтобы ваши действия распространились рекурсивно (включая все подкаталоги), воспользуйтесь опцией -R:

$ chmod -R 777 *

Результатом выполнения вышеприведенной команды будет рекурсивный “обход” всех подкаталогов текущего каталога и назначение полного доступа для всех пользователей и групп. В этой статье рассмотрены лишь некоторые примеры применения команды chmod. Если вы хотите узнать подробнее о работе команды chmod и правах доступа в Linux, обратите внимание на эту статью.

Смена прав только у директорий (рекурсивно)

$ find /path/to/base/dir -type d -exec chmod 755 {} +

$ chmod 755 $(find /path/to/base/dir -type d)

$ chmod 755 `find /path/to/base/dir -type d`

$ find /path/to/base/dir -type d -print0 | xargs -0 chmod 755

Смена прав только у файлов (рекурсивно)

$ find /path/to/base/dir -type f -exec chmod 644 {} +

$ chmod 644 $(find /path/to/base/dir -type f)

$ chmod 0755 `find ./ -type f`

$ find /path/to/base/dir -type f -print0 | xargs -0 chmod 644

Синтаксис Chmod для папок и файлов

Давайте сначала разберемся в сути вопроса с Chmod, чтобы понимать, что именно и каким образом мы настраиваем. Итак приступим. Права доступа разделяются на Chmod к файлам и Chmod к директориям. Обозначаются они одинаково, но означают немного разное.

Права доступа (Chmod) к файлам подразделяются на:

    r - право на чтение данных.

    w - право на изменение содержимого (запись – только изменение содержимого, но не удаление).

    x - право на исполнение файла.

Остановимся чуть подробнее на праве исполнения файла. Дело в том, что в linux (Unix), любой файл может быть исполнен. Является ли он исполнительным - определяется не по его расширению (понятие расширение отсутствует в файловой системе Unix), а по правам доступа Chmod. Если у какого-либо файла установлено право “X” (chmod x), то это означает, что его можно запустить на выполнение.

Теперь о правах доступа (Chmod) к папке (директории):

    r - право на чтение директории (можно прочитать содержимое директории, т.е. получить список объектов, находящихся в ней)

    w - право на изменение содержимого директории (можно создавать и удалять объекты в этой директории, причем если вы имеете право на запись, то удалять вы сможете даже те файлы, которые вам не принадлежат)

    x - право, которое позволяет вам войти в директорию (это право всегда проверяется в первую очередь, и даже если вы имеете все нужные права на объект, который закопан глубоко в цепочке директорий, но не имеете права “X” для доступа хотя бы к одной директории на пути к этому файлу, то к нему вы так и не пробьетесь)

В системах linux (Unix) все эти права раздает главный администратор компьютера, доступ к которому он получает путем ввода пароля. И если большинство объектов будут иметь права доступа (Chmod) только для чтения, то вирусам на таком компьютере делать будет практически нечего, т.к. они не смогут себя туда ни записать, ни затем исполниться. Именно этого результата нам нужно добиться, выставляя права доступа (Chmod) на объекты нашего сайта.

Синтаксис Chmod для групп пользователей

Сами права доступа (Chmod) подразделяются на три категории, в зависимости от того, кто обращается к объекту:

    «user» - u (непосредственно владелец файла)

    «group» - g (член той же группы, к которой принадлежит владелец)

    «world» - o (все остальные)

Сервер определяет, к какой группе пользователей вас отнести в момент подключения вас к серверу. Когда вы, например, подключаетесь к серверу по протоколу FTP , то вы входите под своим именем пользователя (и паролем), и тогда сервер относит вас к группе «user» («u)». Прочие пользователи, которые тоже подключаются по FTP к серверу, будут отнесены к группе «group» («g»), а пользователь, который приходит к вам на сайт, используя свой браузер, попадает в группу «world» («o»).

Вариации трех возможных значений «r», «w» и «x» для трех категорий «u», «g» и «o» и определяют Chmod к файлам. Если не задана какая-то категория, то она заменяется знаком дефисом «-». права доступа (Chmod) указываются последовательно в заданном порядке:

    сначала права для владельца - «u»

    затем для группы - «g»

    и в конце права для всех остальных - «o»

После того, как сервер отнесет пользователя к определенной группе, он предоставляет ему права на действия с объектами, после чего пользователь сможет прочитать, записать или выполнить файл (в зависимости от того, что разрешено делать с данным объектом его группе). Чтобы посмотреть содержимое папки, она должна иметь атрибут чтения «r» (для той группы, к которой сервер отнес пользователя). Чтобы создать файл или папку в уже существующей, необходимо, чтобы она имела атрибут Chmod на запись «w».

Для наглядности давайте разберем пример, где владелец файла («user» - «u») имеет все права: право на чтение, запись в него и исполнение, а все остальные пользователи только право на чтение. Запись таких Chmod будет выглядеть так: «rwx r-- r--». Рассмотрим ее в деталях: «rwx» (эта запись задает права на объект для владельца - «u»), «r--» (эта запись задает права на тот же объект, но в случае если пользователь отнесен сервером к группы - «g»), «r--» (эта запись задает права на объект для всех остальных пользователей - o").

Чем отличаются Chmod файлов и папок

Ничего нельзя делать

Доступ к каталогу и его подкаталогам запрещен

Можно видеть и изменять содержимое

Можно добавить, удалить, изменить файл папки

Выполнить, если файл двоичный

Пользователь может выполнить двоичный файл о существовании которого ему известно, зайти или прочитать каталог запрещено

Синтаксис Chmod выраженных в цифрах (777)

Вы видите, что здесь для описания прав доступа используются записи с использованием латинских букв и дефисов, но вы, наверное, уже сталкивались с тем, что обычно Chmod задают в цифровом виде, например, всем известная комбинации: Chmod 777, разрешающая все и всем. Действительно, права доступа (Chmod) так же обозначают и цифрами:

    w (запись) заменяют на 2

    x (исполнение) заменяют на 1

0 означает – ничего не делать (то, что в буквенной записи обозначается дефисом) Давайте опять вернемся к примеру записи прав доступа, приведенному мною чуть ранее: rwx r-- r--. Если заменить в ней буквы и дефисы на цифры, в соответствии с только что описанным правилом и при этом сложить цифры в каждой тройке, то получим цифровой вид этой записи: 744. Т.е. получается, что сумма этих цифр и показывает Chmod к файлам или папке. Например:

    7 (rwx) = 4 + 2 +1 (полные права)

    5 (r-x)= 4 + 0 + 1 (чтение и выполнение)

    6 (rw-) = 4 + 2 + 0 (чтение и запись)

    4 (r--) =4 + 0 + 0 (только чтение)

В этой таблицы приведены все возможные комбинации Chmod записанные в цифровом виде:

А теперь давайте рассмотрим различные комбинации Chmod в цифрах, применительно к группам пользователей:

«„Владелец“»

«„Группа“»

«„Остальные“»

исполнять

исполнять

исполнять

Вы сами (кроме того случая, когда вы получаете доступ к сайту по FTP) и все остальные посетители вашего сайта, относитесь к группе “word” (все остальные), поэтому для работы с вебсайтом нам нужно в первую очередь смотреть на последнюю (третью) цифру Chmod. Для того чтобы при работе пользователя с сайтом «запускался файл» скрипта достаточно будет, чтобы на него были установлены права доступа (Chmod), начиная от «4» (r-- – только чтение) (5,6,7 тоже подойдут, но это будет лишнее в плане безопасности).

«Для папки» же, в которой лежит файл этого скрипта, нужно выставить минимум «5» (r-x - можно зайти в папку и прочитать его содержимое, удалять или добавлять нельзя). 7 тоже подойдет, но тоже будет уже лишним в плане безопасности. Если нужно, чтобы скрипт не только читался, но и «записывал» какие-то данные (например, введенные пользователем), то минимальные права на «папку» по-прежнему будут «5», но для «файла» уже понадобятся права «6» (читать и записывать).

Скорей всего на сервере, куда вы скопировали содержимое движка вашего сайта, будут установлены следующие Chmod к объектам:

Папки 755

владелец (user) может всё, группа и все остальные могут только читать папки и заходить в них, но им запрещено записывать файлы, изменять названия и стирать их в директориях. (rwxr-xr-x)

Файлы 644

Если бы у вас был сайт, состоящий из одних html, то можно было бы все так и оставить. Но современные сайты построены на движках, и там могут быть объекты, в которые нужно будет производить запись от имени пользователей из группы «world» - o (все остальные). Это могут быть папки, используемые для кэширования страниц или те, в которые по ходу работы с сайтом будут загружаться картинки и др. Само собой, что если вы зайдете на сайт по FTP , то сможете призвести запись в эти файлы или папки, но работая с интерфейсом вебсайта, как обычный пользователь, у вас могут возникнуть проблемы. Поэтому к установке тех или иных Chmod надо подходить избирательно.

Компьютеры, работающие под управлением операционных систем Windows, могут работать с различными файловыми системами, такими как FAT32 и NTFS. Не вдаваясь в подобности можно сказать одно, что отличаются они главным – файловая система NTFS позволяет настраивать параметры безопасности для каждого файла или папки(каталога). Т.е. для каждого файла или папки файловая система NTFS хранит так называемые списки ACL(Access Control List), в которых перечислены все пользователи и группы, которые имеют определенные права доступа к данному файлу или папке. Файловая система FAT32 такой возможности лишена.

В файловой системе NTFS каждый файл или папка могут иметь следующие права безопасности:

  • Чтение — Разрешает обзор папок и просмотр списка файлов и подпапок, просмотр и доступ к содержимому файла;
  • Запись — Разрешает добавление файлов и подпапок, запись данных в файл;
  • Чтение и Выполнение — Разрешает обзор папок и просмотр списка файлов и подпапок, разрешает просмотр и доступ к содержимому файла, а также запуск исполняемого файла;
  • Список содержимого папки — Разрешает обзор папок и просмотр только списка файлов и подпапок. Доступ к содержимому файла это разрешение не дает!;
  • Изменить — Разрешает просмотр содержимого и создание файлов и подпапок, удаление папки, чтение и запись данных в файл, удаление файла;
  • Полный доступ — Разрешает просмотр содержимого, а также создание, изменение и удаление файлов и подпапок, чтение и запись данных, а также изменение и удаление файла

Перечисленные выше права являются базовыми. Базовые права состоят из особых прав. Особые права — это более подробные права, из которых формируются базовые права. Использование особых прав дает очень большую гибкость при настройке прав доступа.

Список особых прав доступа к файлам и папкам:

  • Обзор папок/Выполнение файлов — Разрешает перемещение по структуре папок в поисках других файлов или папок, выполнение файлов;
  • Содержание папки/Чтение данных — Разрешает просмотр имен файлов или подпапок, содержащихся в папке, чтение данных из файла;
  • Чтение атрибутов — Разрешает просмотр таких атрибутов файла или папки, как «Только чтение» и «Скрытый»;
  • Чтение дополнительных атрибутов — Разрешает просмотр дополнительных атрибутов файла или папки;
  • Создание файлов / Запись данных — Разрешает создание файлов в папке (применимо только к папкам), внесение изменений в файл и запись поверх имеющегося содержимого (применимо только к файлам);
  • Создание папок / Дозапись данных — Разрешает создание папок в папке (применимо только к папкам), внесение данных в конец файла, но не изменение, удаление или замену имеющихся данных (применимо только к файлам);
  • Запись атрибутов — Разрешает или запрещает смену таких атрибутов файла или папки, как «Только чтение» и «Скрытый»;
  • Запись дополнительных атрибутов — Разрешает или запрещает смену дополнительных атрибутов файла или папки;
  • Удаление подпапок и файлов — Разрешает удаление подпапок и файлов даже при отсутствии разрешения «Удаление» (применимо только к папкам);
  • Удаление — Разрешает удаление файла или папки. Если для файла или папки отсутствует разрешение «Удаление», объект все же можно удалить при наличии разрешения «Удаление подпапок и файлов» для родительской папки;
  • Чтение разрешений — Разрешает чтение таких разрешений на доступ к файлу или папке, как «Полный доступ», «Чтение» и «Запись»;
  • Смена разрешений — Разрешает смену таких разрешений на доступ к файлу или папке, как «Полный доступ», «Чтение» и «Запись»;
  • Смена владельца — Разрешает вступать во владение файлом или папкой;
  • Синхронизация — Разрешает ожидание различными потоками файлов или папок и синхронизацию их с другими потоками, могущими занимать их. Это разрешение применимо только к программам, выполняемым в многопоточном режиме с несколькими процессами;

!!!Все базовые и особые права являются как разрешающими так и запрещающими.

Все разрешения файлов и папок делятся на два вида: явные и наследуемые. Механизм наследования подразумевает автоматическую передачу чего-либо от родительского объекта дочернему. В файловой системе это означает, что любой файл или папка могут наследовать свои права от родительской папки. Это очень удобный механизм, избавляющий от необходимости назначать явные права для всех вновь создаваемых файлов и папок. Представьте, что у вас на каком-то диске несколько тысяч файлов и папок, как им всем раздать права доступа, сидеть и каждому назначать? Нет. Тут работает механизм наследования. Создали папку в корне диска, папка автоматически получила точно такие же права, как и корень диска. Изменили права для вновь созданной папки. Потом внутри созданной папки создали еще вложенную папку. У этой вновь созданной вложенной папки права унаследуются от родительской папки и т.д. и т.п.

Результатом применения явных и наследуемых прав и будут фактические права на конкретную папку или файл. Подводных камней при этом очень много. Например, у вас есть папка, в которой вы разрешаете пользователю «Вася» удалять файлы. Потом вы вспоминаете, что в этой папке есть один очень важный файл, который Вася ни в коем случае не должен удалить. Вы устанавливаете на важный файл явный запрет (особое право запрета «Удаление») . Казалось бы, дело сделано, файл явно защищен от удаления. А Вася спокойно заходит в папку и удаляет этот суперзащищенный файл. Почему? Потому что Вася имеет права удаления от родительской папки, которые в данном случае являются приоритетными.

Старайтесь не пользоваться назначением прав, непосредственно, на файлы, назначайте права на папки.

!!! Старайтесь назначать права только для групп, это значительно упрощает администрирование. Назначение прав для конкретных пользователей не рекомендуется фирмой Microsoft. Не забывайте, что в группу могут входить не только пользователи, но и другие группы.

Например. Если компьютер включен в домен, то в его локальную группу «Пользователи» автоматически добавляется группа «Domain Users»(пользователи домена), а в локальную группу «Администраторы» автоматически добавляется группа «Domain Admins»(администраторы домена), и соответственно, назначая на какую-либо папку права группе локальных пользователей, вы автоматически назначаете права для всех пользователей домена.

Не расстраивайтесь если все описанное выше сразу не очень понятно. Примеры и самостоятельная работа быстро исправят положение!

Переходим к конкретике.

Все примеры я буду показывать на примере окон Windows XP. В Windows 7 и выше сущность осталась идентичной, только окон стало немного больше.

Итак, чтобы назначить или изменить права на файл или паку необходимо в проводнике нажать правой клавишей мышки на нужный файл или папку выбрать пункт меню «Свойства»

У вас должно открыться окно с закладкой «Безопасность»

Если такой закладки нет, тогда делаем следующее. Запускаем Проводник, затем открываем меню «Сервис» «Свойства папки…»

В открывшемся окне переходим на закладку «Вид» и снимаем галочку с параметра «Использовать простой общий доступ к файлам(рекомендуется)»

Все, теперь вам доступны все свойства файловой системы NTFS.

Возвращаемся к закладке «Безопасность» .

В открывшемся окне нам доступно много информации. Сверху находится список «Группы и пользователи:» , в котором перечислены все пользователи и группы, имеющие права доступа к данной папке (стрелка 1). В нижнем списке показаны разрешения для выделенного пользователя/группы(стрелка 2). В данном случае это пользователь SYSTEM. В данном списке разрешений видны базовые разрешения. Обратите внимание, что в колонке «Разрешить» галочки имеют блеклый цвет и не доступны для редактирования. Это говорит о том, что данные права унаследованы от родительской папки. Еще раз, в данном случае все права пользователя SYSTEM на папку «Рабочая» полностью унаследованы от родительской папки, и пользователь SYSTEM имеет все права («Полный доступ» )

Выделяя в списке нужную группу или пользователя, мы можем посмотреть базовые права для этой группы или пользователя. Выделив пользователя «Гостевой пользователь ([email protected] можно увидеть, что у него все права явные

А вот группа «Пользователи (KAV-VM1\Пользователи» имеет комбинированные права, часть из них унаследована от родительской папки(серые квадратики напротив «Чтение и выполнение» , «Список содержимого папки» , «Чтение» ), а часть установлено явно – это право «Изменить» и «Запись»

!!!Внимание. Обратите внимание на названия пользователей и групп. В скобочках указывается принадлежность группы или пользователя. Группы и пользователи могут быть локальными, т.е. созданными непосредственно на этом компьютере, а могут быть доменными. В данном случае группа «Администраторы» локальная, так как запись в скобочках указывает имя компьютера KAV-VM1, а после слэша уже идет само название группы. Напротив, пользователь «Гостевой пользователь» является пользователем домена btw.by, на это указывает запись полного имени [email protected]

Зачастую при просмотре или изменении прав можно ограничиться окном с базовыми правами, но иногда этого недостаточно. Тогда можно открыть окно, в котором изменяются особые разрешения, владелец или просматриваются действующие разрешения. Как это сделать? Нажимаем на кнопку «Дополнительно» . Открывается вот такое окно

В данном окне в таблице «Элементы разрешений» перечислены все пользователи, имеющие права на данную папку. Точно так же, как и для базовых разрешений, мы выделяем нужного пользователя или группу и нажимаем кнопку «Изменить» . Открывается окно, в котором показаны все особые разрешения для выделенного пользователя или группы

Аналогично базовым разрешениям, особые разрешения, унаследованные от родительской папки, будут показаны блеклым серым цветом и не будут доступны для редактирования

Как вы уже могли заметить, в окне особых разрешений для некоторых пользователей или групп есть несколько строк.


Это происходит потому, что для одного пользователя или группы могут быть различные виды прав: явные и наследуемые, разрешающие или запрещающие, различающиеся по виду наследования. В данном случае права на чтение для группы «Пользователи» наследуются от родительской папки, а права на изменение добавлены явно.

Примеры назначения прав.

!!! Все примеры будут идти с нарастанием сложности. Читайте и разбирайтесь с ними в такой же последовательности как они идут в тексте. Однотипные действия в последующих примерах буду опускать, чтобы сократить объём текста. 🙂

Пример 1. Предоставление права доступа к папке определенной локальной группе безопасности только на чтение.

Сначала создадим локальную группу, в которую включим весь список нужных нам пользователей. Можно и без группы, но тогда для каждого пользователя нужно будет настраивать права отдельно, и каждый раз, когда понадобится дать права новому человеку, потребуется проделывать все операции заново. А если права предоставить локальной группе, то для настройки нового человека понадобится только одно действие – включение этого человека в локальную группу. Как создать локальную группу безопасности читаем в статье «Настройка локальных групп безопасности».

Итак. Мы создали локальную группу безопасности с именем «Коллегам для чтения»,


в которую добавили всех нужных пользователей.

Теперь настраиваю права доступа к папке. В данном примере я сделаю права доступа созданной группе «Коллегам для чтения» на папку «Фото» .

Нажимаю правой клавишей мышки на папку «ФОТО» и выбираю пункт меню «Свойства» , перехожу на закладку «Безопасность» .

В открывшейся закладке «Безопасность» отображаются текущие права папки «ФОТО» . Выделив группы и пользователей в списке, можно увидеть, что права этой папки наследуются от родительской папки(серые галочки в столбце «Разрешить» ). В данной ситуации я не хочу, чтобы кто-то кроме вновь созданной группы имел хоть какой-то доступ к папке «ФОТО» .

Поэтому, я должен убрать наследование прав и удалить ненужных пользователей и группы из списка. Нажимаю кнопку «Дополнительно» . В открывшемся окне,


убираю галочку с пункта «Наследовать от родительского объекта применимые к дочерним объектам разрешения, добавляя их к явно заданным в этом окне.» . При этом откроется окно, в котором я смогу выбрать, что делать с текущими унаследованными правами.

В большинстве случаев я советую нажимать здесь кнопку «Копировать» , так как если выбрать «Удалить» , то список прав становится пуст, и вы можете фактически забрать права у самого себя. Да, не удивляйтесь, это очень легко сделать. И если вы не администратор на своем компьютере, или не пользователь группы «Операторы архива» , то восстановить права вам будет невозможно. Ситуация напоминает дверь с автоматической защелкой, которую вы закрываете, оставляя ключи внутри. Поэтому, лучше всегда нажимайте кнопку «Копировать» , а потом удаляйте ненужное.

После того, как я нажал «Копировать», я опять возвращаюсь в предыдущее окно, только уже со снятой галочкой.

Нажимаю «ОК» и возвращаюсь в окно базовых прав. Все права стали доступны для редактирования. Мне нужно оставить права для локальной группы «Администраторы» и пользователя SYSTEM , а остальных удалить. Я поочередно выделяю ненужных пользователей и группы и нажимаю кнопку «Удалить» .

В результате у меня получается вот такая картина.

Теперь мне остается добавить только группу «Коллегам для чтения» и назначить этой группе права на чтение.

Я нажимаю кнопку «Добавить» , и в стандартном окне выбора выбираю локальную группу «Коллегам для чтения» . Как работать с окном выбора подробно описано в статье .

В результате всех действий, я добавил группу «Коллегам для чтения» в список базовых прав, при этом для этой группы автоматически установились права «Чтение и выполнение» , «Список содержимого папки» , «Чтение» .

Все, остается нажать кнопку «ОК» и права назначены. Теперь любой пользователь, который принадлежит локальной группе безопасности «Коллегам для чтения», получит возможность читать все содержимое папки «ФОТО» .

Пример 2. Предоставление персонального доступа пользователям к своим подпапкам в папке.

Данная ситуация тоже распространена на практике. Например, у вас есть папка для новых сканированных документов. В этой папке для каждого пользователя создана своя отдельная подпапка. После сканирования документ забирается пользователем из свой подпапки. Задача назначить права так, чтобы каждый пользователь видел содержимое только своей подпапки и не мог получить доступ в подпапку коллеги.

Для данного примера я немного перефразирую задание. Предположим у нас есть общая папка «ФОТО» , в которой для каждого пользователя есть подпапка. Необходимо настроить права так, чтобы пользователь имел в своей подпапке все права, а подпапки других пользователей были бы ему недоступны.

Для такой настройки я полностью повторяю все действия из первого примера. В результате повторения у меня получаются права для всей группы «Коллегам для чтения» на чтение ко всем подпапкам. Но моя задача сделать видимой пользователю только «свою» подпапку. Поэтому, в окне базовых прав я нажимаю кнопку «Дополнительно»


и перехожу в окно особых прав, в котором выделяю группу «Коллегам для чтения» и нажимаю кнопку «Изменить»

В открывшемся окне я меняю правила наследования, вместо значения в поле «Применять:» я выбираю значение «Только для этой папки» .

Это самый ключевой момент этого примера. Значение «Только для этой папки» приводит к тому, что права чтения для группы «Коллегам для чтения» распространяются только на корень папки «ФОТО» , но не на подпапки. Таким образом, каждый пользователь сможет добраться к своей папке, но заглянуть в соседнюю не сможет, права на просмотр подпапок у него нет. Если же не дать такое право группе совсем, то пользователи вообще не смогут попасть в свои подпапки. Файловая система не пропустит их даже в папку «ФОТО» .

В итоге, пользователи смогут заходить в папку «ФОТО» но дальше в подпапки зайти не смогут!

В окне особых прав нажимаем «ОК» и выходим в предыдущее окно, теперь в столбце «Применять к» напротив группы «Коллегам для чтения» стоит значение «Только для этой папки» .

Нажимаем во всех окнах «ОК» и выходим.

Все. Теперь остается настроить персональные права на каждую подпапку. Сделать это придется для каждой подпапки, права-то персональные для каждого пользователя.

Все нужные действия вы уже делали в первом примере, повторим пройденное 🙂

На подпапке «Пользователь1» нажимаю правой клавишей мышки, выбираю пункт меню «Свойства» , перехожу на закладку «Безопасность» . Нажимаю кнопку «Добавить»

и в стандартном окне выбора выбираю доменного пользователя с именем «Пользователь1» .

Остается установить галочку для разрешающего права «Изменить» . При этом галочка для разрешающего права «Запись» установится автоматически.

Нажимаем «ОК» . Выходим. Остается повторить аналогичные действия для всех подпапок.

Пример 3. Предоставление персонального доступа пользователю к своей подпапке на запись, с одновременным запретом изменения или удаления.

Понимаю, что тяжело звучит, но постараюсь пояснить. Такой вид доступа я называю защелка. В быту мы имеем аналогичную ситуацию с обычным почтовым ящиком, в который бросаем бумажные письма. Т.е. бросить письмо в ящик можно, но вытащить его из ящика уже нельзя. В компьютерном хозяйстве такое может пригодиться для ситуации, когда вам кто-то записывает в папку отчет. Т.е. файл записывается пользователем, но потом этот пользователь уже ничего не может с этим файлом сделать. Таким образом, можно быть уверенным, что создатель уже не сможет изменить или удалить переданный отчет.

Как и в предыдущем примере, повторяем все действия, за исключением того, что пользователю не даем сразу полные права на свою папку, изначально в базовых разрешениях даем только доступ на чтение, и нажимаем кнопку «Дополнительно»

В открывшемся окне выделяем «Пользователь1» и нажимаем кнопку «Изменить»

В открывшемся окне мы видим стандартные права на чтение

Для того чтобы дать права пользователю создавать файлы ставим разрешение на право «Создание файлов/Запись данных» , а на права «Удаление подпапок и файлов» и «Удаление» ставим запрет. Наследование оставляем стандартное «Для этой папки, ее подпапок и файлов» .

После нажатия кнопки «ОК» и возврата в предыдущее окно можно увидеть существенные изменения. Вместо одной записи для «Пользователь1» появилось две.

Это потому, что установлены два вида прав, одни запрещающие, они идут в списке первыми, вторые разрешающие, они в списке вторые. Так как особые права являются нестандартными, то в столбце «Разрешение» стоит значение «Особые» . При нажатии кнопки «ОК» появляется окно, к котором windows предупреждает, что есть запрещающие права и что они имеют более высокий приоритет. В переводе это означает туже ситуацию с самозакрывающейся дверью, ключи от которой находятся внутри. Подобную ситуацию я описывал во втором примере.

Все. Права установлены. Теперь «Пользователь1» сможет записать в свою папку любой файл, открыть его, но изменить или удалить не сможет.

А как же полная аналогия с реальным почтовым ящиком?

Чтобы пользователь не смог открыть или скопировать записанный файл, нужно сделать следующее. Опять открываем разрешающие особые разрешения для «Пользователь1» , и в поле «Применять:» меняем значение на «Только для этой папки»

При этом у пользователя не остается права на чтение или копирование файла.

Все. Теперь аналогия с физическим почтовым ящиком почти полная. Он сможет только видеть названия файлов, их размер, атрибуты, но сам файл увидеть не сможет.

Просмотр действующих прав.

Хочу сказать сразу, имеющаяся возможность просмотреть действующие права для папки или файла, является полной фикцией. В моем представлении такие инструменты должны давать гарантированную информацию. В данном случае это не так. Майкрософт сама признается в том, что данный инструмент не учитывает много факторов, влияющих на результирующие права, например, условия входа. Поэтому, пользоваться подобным инструментом – только вводить себя в заблуждение относительно реальных прав.

Описанный в самом начале статьи случай, с запретом на удаление файла из папки в данном случае является очень красноречивым. Если вы смоделируете подобную ситуацию и посмотрите на права файла, защищенного от удаления, то вы увидите, что в правах файла на удаление стоит запрет. Однако, удалить этот файл не составит труда. Почему Майкрософт так сделала — я не знаю.

Если же вы все-таки решите посмотреть действующие права, то для этого необходимо в окне базовых прав нажать кнопку «Дополнительно» , и в окне особых прав перейти на закладку «Действующие разрешения» .

Затем необходимо нажать кнопку «Выбрать» и в стандартном окне выбора выбрать нужного пользователя или группу.

После выбора можно увидеть «приблизительные» действующие разрешения.

В заключении хочу сказать, что тема прав файловой системы NTFS очень обширна, приведенные выше примеры лишь очень малая часть того, что можно сделать. Поэтому, если возникают вопросы, задавайте их в комментариях к этой статье. Постараюсь на них ответить.

Выбор редакции
Сяоми уже давно вышла на мировой рынок гаджетов и смартфонов, и на данном этапе уже уверенно может конкурировать с именитыми брендами. В...

Давненько я не писал про космические игры, а из космических околосимуляторов сейчас главными являются Elite Dangerous и Star Citizen ,...

Практически любая программа в ходе своей работы может выдать ошибку или начать работать некорректно. Не обошла данная проблема стороной и...

Как войти в безопасный режим Windows 7? Данный вопрос чаще всего возникает, когда появляется необходимость проведения отладочных операций...
Size: 4.37 Gb, Rus, Free Chip XP 2014 Final DVD - мультизагрузочный диск c обновлениями по 20 мая 2014 года. Установка производится как в...
Отправляясь за границу, большинство пользователей хотят всегда оставаться на связи. И такая возможность у них есть с услугой Мегафон...
Есть несколько технологий передачи электричества по воздуху, в том числе с помощью лазера, звуковой волны и прочих интересных способов....
Нам очень понравилась Австрия, и даже где-то не хотелось уезжать. Но основной целью путешествия была Италия. Вся наша семья питает...
Перед подачей этой команды следует подать команду UNLOCK RPM Изменить частоту вращения шпинделя (работа этой процедуры не гарантирована)...