Chmod только чтение. Директории и файлы WebAsyst. Владелец и группа

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

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

Существует только один оператор, а именно декадентское выражение прав. Он не может добавлять или удалять что-либо, он всегда присваивает все права сразу. Группы действительно четыре. Каталоги немного отличаются. Что означает запись в каталог или запуск каталога?

Последние четыре бита устанавливаются при создании файла и не подлежат изменению. Биты режима могут изменяться владельцем файла или суперпользователем с помощью команды chmod ("change mode" — изменить режим). Просмотр значений этих битов осуществляется с помощью команды ls .

Биты SUID и SGID

Биты, которым в коде режима доступа соответствуют восьмеричные значения 4000 и 2000, — это биты смены идентификатора пользователя (SUID) и смены идентификатора группы (SGID). Они позволяют программам получать доступ к файлам и процессам, которые при прочих обстоятельствах недоступны пользователю, выполняющему эти программы. Подробнее данный механизм был описан в параграфе 3.1.

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

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

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

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

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

Sticky-бит

Бит, которому в коде режима доступа соответствует восьмеричное значение 1000, называется sticky-битом ("sticky" — липучка). Это хороший пример того, как UNIX по мере взросления избавляется от рудиментов, но они продолжают следовать за системой по пятам. В системах с небольшой памятью, например PDP-11/70, где UNIX работала в свои ранние годы, требовалось, чтобы отдельные программы постоянно оставались в памяти. Тогда sticky-бит был очень важен, так как запрещал выгрузку программ из памяти. Сегодня в мире 25-долларовых модулей памяти и быстродействующих дисковых накопителей sticky-бит никому не нужен, и современные ядра попросту игнорируют его.

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

Если sticky-бит устанавливается для каталога, то большинство версий UNIX позволяют удалять и переименовывать его файлы только в том случае, если пользователь является владельцем каталога, владельцем файла или пользователем root. Иметь одно лишь разрешение на запись в каталог недостаточно. Такая мера направлена на то, чтобы сделать каталоги вроде / tmp более защищенными.

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

Обмен ссылками экономит время и работу

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

Системы Solaris и HP-UX не столь строги в отношении каталогов с установленным sticky-битом. Пользователь, имеющий право записи в такой каталог, может удалять из него файлы, даже если он не является их владельцем.

Биты режима

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

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

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

Режим доступа удобно представлять в виде восьмеричного числа, так как каждая цифра в нем представляется тремя битами. Три старших бита (в коде режима доступа им соответствуют восьмеричные значения 400, 200 и 100) служат для управления доступом к файлу со стороны его владельца. Вторые три бита (40, 20 и 10) задают доступ для пользователей группы. Последние три бита (4, 2 и 1) определяют доступ к файлу со стороны всех остальных пользователей. Старший бит каждой триады — бит чтения, средний — бит записи, младший — бит выполнения.

Будьте уверены в наследовании прав доступа

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

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

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

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

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

Установкой бита выполнения задается разрешение запускать файл, если он является программой или командным сценарием. Существует два типа исполняемых файлов: двоичные файлы, которые выполняются непосредственно центральным процессором, и сценарии, обрабатываемые интерпретатором shell или какой-нибудь другой программой (например, awk или sed ). По соглашению сценарии начинаются со строки примерно такого вида:

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

Она задает соответствующий интерпретатор команд. Текстовые файлы, в которых не указан конкретный интерпретатор, считаются сценариями интерпретатора sh (Bourne shell).

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

Создание и управление подпапками

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

Создание и управление подпапками

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

Просмотр атрибутов файла

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

Для каждого файла хранятся также сведения о времени последнего изменения атрибутов, т.е. самого индексного дескриптора. Название данного атрибута ("ctime") вводит многих людей в заблуждение, так как они полагают, что это время создания файла. На самом деле в нем хранится время последнего изменения одного из атрибутов файла (например, владелеца, кода режима), но не его содержимого.

Рассмотрим пример:

% ls -1 /bin/sh

В первом поле задается тип файла и маска режима доступа к нему. Поскольку первый символ — дефис, значит, перед нами обычный файл. Различные типы файлов обозначаются односимвольными кодами (табл. 5.2).

Таблица 5.2. Кодирование типов файлов в листинге команды l s

Тип файла

Создается командой

Удаляется командой

Обычный файл

редакторы,ср и др.

m kdir

Файл байт-ориентированного устройства

m knod

r m

Файл блок-ориентированного устройства

m knod

socket(2)

Именованный канал

Следующие девять символов в этом поле — это три набора битов режима. В листинге команды ls они представляются буквами r, w и х (соответственно чтение, запись и выполнение). В данном случае владелец имеет все права доступа к файлу, а остальные пользователи — только право на чтение и выполнение.

Если бы был установлен бит смены идентификатора пользователя (SUID), то вместо буквы х, обозначающей право владельца на выполнение, стояла бы буква s. Если бы был установлен бит смены идентификатора группы (SGID), то вместо буквы х для группы тоже стояла бы буква s. Последний бит режима (право выполнения для остальных пользователей) представляется буквой t,когда для файла задан sticky-бит. Если биты SUID/SGID или sticky-бит установлены, а надлежащий бит выполнения — нет, эти биты представляются соответственно символами S и T, указывающими на наличие ошибки и игнорирование данных атрибутов.

Далее расположено поле со счетчиком ссылок на файл. В нашем примере здесь стоит единица, свидетельствующая о том, что / bin / sh — единственное имя, под которым известен данный файл. Всякий раз при создании жесткой ссылки на файл этот счетчик увеличивается на единицу.

Каждый каталог имеет минимум две жесткие ссылки: одну из родительского каталога и одну из специального файла "." внутри самого каталога. Символические ссылки в счетчике не учитываются.

Следующие два поля — владелец и группа файла. В данном случае владельцем файла является пользователь root , и файл принадлежит группе bin . В действительности ядро хранит эти данные не как строки, а как идентификаторы пользователя и группы. Если символьные версии имен определить невозможно, в этих полях будут отображаться числа. Такое может случиться, если запись пользователя или группы была удалена из файла / etc / passwd или / etc / group соответственно. Не исключено также, что возникла ошибка в сетевой административной базе данных (см. главу 18).

Затем следует поле, отображающее размер файла в байтах. Рассматриваемый файл имеет размер 85924 байта, т.е. почти 84 Кбайт. Далее указывается дата последнего изменения: 27 сентября 1997 г. В последнем поле листинга содержится имя файла: / bin / sh .

Для файла устройства команда Is выдает несколько иную информацию. Например:

% ls -l /dev/ttya

В основном поля те же, но вместо размера в байтах показаны старший и младший номера устройства. Имя / dev / ttya относится к первому устройству, управляемому драйвером устройства 12 (в данной системе это драйвер терминала).

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

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

Дополнительные флаги во FreeBSD

Во FreeBSD и других системах, построенных на ядре 4.4BSD, имеется ряд дополнительных флагов, которые могут быть установлены для файлов. Эти флаги связаны с расширенной семантикой файловой системы. Например, флаг sappnd делает файл доступным только для присоединения (это может быть полезно при создании журнальных файлов). А благодаря флагу schg файл становится неизменяемым и неудаляемым. Узнать о наличии этих файлов поможет команда ls - lo :

% ls -lo /kernel

Управлять флагами можно с помощью команды chflags :

# chflags noschg /kernel

# ls -lo /kernel

Список доступных флагов вы можете получить на странице интерактивного руководства chflags (l).

Команда chmod: изменение прав доступа

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

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

В табл. 5.3 показано восемь возможных комбинаций для каждого трехбитового набора, где символы r, w и х обозначают соответственно чтение, запись и выполнение.

Таблица 5.3 Коды прав доступа в команде chmod

Восьмеричное число

Двоичное число

Маска режима доступа

Например, команда chmod 711 myprog предоставляет владельцу все права, а всем остальным пользователям — только право выполнения.

В табл. 5.4 представлены некоторые примеры мнемонических спецификаций.

Таблица 5.4 Примеры мнемонических спецификаций команды chmod

Спецификация

Владельцу файла дополнительно дается право выполнения

Владельцу и группе предоставляется право чтения/записи, остальным пользователям — право чтения

Все пользователи лишаются права выполнения

Владельцу и группе дается право чтения/выполнения, устанавливается также бит SUID; остальным пользователям запрещен доступ к файлу

Группе назначаются такие же права, что и владельцу

Символ u ("user") обозначает владельца файла, символ g ("group") — группу, символ о ("others") — других пользователей, символ a ("all") — всех пользователей сразу.

Команды chown и chgrp: смена владельцев

Команда chown предназначена для изменения владельца файла, а команда chgrp — для изменения группы, которой принадлежит файл. Первым аргументом обеих команд является имя нового владельца или новой группы соответственно. Для того чтобы выполнять команду chgrp , необходимо либо быть владельцем файла и входить в назначаемую группу, либо быть пользователем root .

В большинстве версий команд chown и chgrp предусмотрен флаг - R , который задает смену владельца или группы не только самого каталога, но и всех его подкаталогов и файлов. Например, последовательность команд:

# chmod 755 ~matt

# chown -R matt ~matt

# chgrp -R staff ~matt

можно использовать для конфигурирования начального каталога нового пользователя после копирования в него стандартных файлов сценариев. Не следует пытаться выполнять команду chown для файлов, имена которых начинаются с точки:

# chown - R matt ~ matt /.*

Указанному шаблону поиска соответствует также файл ~ matt /.., вследствие чего команда изменит и владельца родительского каталога.

В некоторых системах посредством команды chown можно изменять владельца и группу файла одновременно. Ее синтаксис в этом случае таков:

chownпользователь:группа файл...

Например:

# chown - R matt : staff ~matt

Версии UNIX, относящиеся к семейству System V, часто позволяют пользователям отказываться от владения своими файлами с помощью команды chown , тогда как в BSD-системах команду chown может выполнять только суперпользователь. Практика показывает, что возможность свободного изменения принадлежности файлов приводит к многочисленным проблемам, в частности к превышению дисковых квот. Лучше всего, если выполнять эту команду разрешается только пользователю root .

Команда umask: задание стандартных прав доступа

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

Таблица 5.5 Схема кодирования значения umask

Восьмеричное число

Двоичное число

Маска режима доступа

Например, команда umask 027 предоставляет все права владельцу файла, запрещает читать файл группе и не дает никаких прав остальным пользователям. По умолчанию значение umask равно, как правило, 022, т.е. выполнять модификацию файла разрешается только его владельцу.

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

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

Механизм разграничения доступа базируется на именах пользователей, а также на названиях групп пользователей, состав которых изменяет и определяет root пользователь (суперпользователь). Пользователь может входить в одну или несколько групп и иметь права доступа в зависимости от группы, в которую он входит.

При создании файла у него появляется владелец, то есть пользователь, который запустил процесс его создания. Также определяется группа, которая будет иметь права на этот файл. Изменять владельца файла и группу файла можно при помощи команд chown и chgrp.

Команды chown и chgrp

Команда chown (расшифровывается как “change owner”) используется для изменения владельца файла. При этом выполнять изменение владельца должен обязательно суперпользователь. Вам нужно ввести название команды, затем имя пользователя, которого вы собираетесь сделать владельцем файла, и в конце название файла:

# chown имя_пользователя название_файла

Команда chgrp (сокращение от “change group”) используется для изменения группы файла. При этом выполнить команду может как суперпользователь, так и владелец файла, но он обязательно должен быть членом группы, которой он хочет передать права на файл. Вам нужно ввести команду, название группы файлов, которой вы передаете права, а затем название файла:

# chgrp название_группы название_файла

Сразу расскажу о полезном ключе -R (расшифровывается как “recursively”). Он позволяет применять команду не только к текущей директории, но и ко всем поддиректориям. Ключ можно использовать и с chown, и с chgrp. Использовать такую рекурсивную команду удобно в случае большой вложенности.

Права доступа

Зачем настраивать права доступа?

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

Как смотреть права доступа?

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

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

Пример отобразившейся информации:

Total 32 drwxr-xr-- 2 root root 4096 May 7 2016 bin drwxr-xr-- 2 root root 4096 May 7 2016 etc drwxr-xr-- 2 root root 4096 Aug 11 2016 games drwxr-xr-- 2 user1 users May 5 12:00 Images drwxr-xr-- 2 root root 4096 Mar 23 2016 sbin -rw-r--r-- 1 root root May 6 20:28 file1.txt -rw-r--r-- 1 root root May 6 09:58 kdm.log

Разберемся, что означают эти строки.

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

  • - — обычный файл;
  • d - каталог.

Помимо них есть и другие обозначения:

  • b — файл блочного устройства;
  • c — файл символьного устройства;
  • s — доменное гнездо (socket);
  • p — именованный канал (pipe);
  • l символическая ссылка (link).

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

  • r - read - право на чтение;
  • w - write - право на запись (изменение, в том числе и удаление);
  • x - execute - право на выполнение этого файла (если речь о каталоге, то просмотр оглавления и поиск в нем);
  • - (прочерк) вместо одной из букв говорит о том, что соответствующего права у вас нет.

Поэтому по записи

Rw-r--r-- 1 root root May 6 20:28 file1.txt

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

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

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

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

Изменение прав доступа

Для назначения и изменения прав доступа используется команда chmod (сокращенно от change mode). Она вводится в командную строку по следующей логике:

chmod кто=права файл/каталог

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

  • u - user - владелец файла;
  • g - group - группа, которой принадлежит файл;
  • o - other - остальные пользователи;
  • a - all - все (вместо сочетания ugo).

Наконец, вместо «файл/каталог» вам нужно написать в команде название файла или каталога, права к которому вы хотите изменить.

Примеры

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

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

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

Chmod ug=rw file1.txt

Комбинировать можно и сами файлы или каталоги (если вы хотите изменить права сразу для нескольких файлов):

Chmod ug=rw file1.txt file2.txt

Добавление и исключение прав

Еще один интересный нюанс - вы можете также использовать знаки плюса (+) и минуса (-). Это полезно в тех случаях, когда вы хотите предоставить (добавить) или убрать (лишить) какие-либо права.

К примеру, команда

Chmod o+w file.txt

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

Копирование прав

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

Chmod o=u file.txt

Но менять сами права при вводе команды такой конструкции нельзя.

Цифровое обозначение

Наверняка вы ни раз сталкивались с тем, что папкам или файлам даются права доступа в виде цифр. Например, 754, 755, 774 и т.д.

Каждая из цифр - это то же обозначение прав доступа для владельца, группы и остальных пользователей соответственно.

Расшифровка: чтение (r) - 4, запись (w) - 2 и выполнение (x) - 1. Если сложить все эти права, то получится 7 - такое право доступа может быть у владельца файла. Группа может иметь право на чтение и запись (4+2) - обозначается 1. И так далее.

Чтобы было понятнее:

Такая запись пошла из двоичного кодирования восьмеричных цифр, то есть 754 - это восьмеричная запись 9 бит, которые задают права для файла или каталога.

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

Chmod 754 file1.txt

Примеры

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

Дополнительно

Изменять права доступа можно не только через командную строку, но в различных файловых менеджерах, где это обычно более удобно и наглядно. Например, в Total Commander выставление прав выглядит следующим образом:

В Filezilla:



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: