• Что можно приготовить из кальмаров: быстро и вкусно

    (Изначальное значение прав доступа файла 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 надо подходить избирательно.

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

    Cd /var/www/сайт find ./ -type f -exec chmod 0644 {} \; find ./ -type d -exec chmod 0755 {} \;

    Что такое Chmod

    Это UNIX-утилита, с помощью которой можно быстро через консоль изменить права на доступ для определённых владельцев (owner) и групп (group) для указанных категорий и файлов.

    Зачем использовать Chmod

    В UNIX-системах — FreeBSD, Ubuntu, Debian, Centos — у каждого файла и папки (каталога) есть свои , к которым они относятся. Сделано это с целью разграничения прав доступа на чтение (r, read), запись (w, write) и исполнение (x, execute) для разных пользователей: владельцев (u), пользователей, входящих в группу владельца (g) и остальных (o).
    Например, если вы пользуетесь хостингом, то должны знать, что ваш сайт физически находится на одном сервере рядом со множеством других сайтов таких же, как вы, пользователей со своими сайтами. Чтобы вы не смогли помешать друг другу, у каждой директории с сайтами свой владелец и группа пользователей, к которым они относятся.
    На shared хостинге о вас позаботятся профессиональные системные администраторы. А если вы имеете свой сервер VDS/VPS, то просто обязаны следить за прописанными правами на доступ к файлам. Например, если вдруг с помощью уязвимости на сайте злоумышленник сможет записать backdoor в директорию для загрузки файлов, то с правильно прописанными правами доступа он не сможет причинить большого вреда файловой системе. Конечно, в директории для загрузки файлов должно быть принудительно отключено исполнение скриптов, но это тема уже для другого разговора.

    Синтаксис Chmod

    chmod [-Rvf] [Правила доступа] [Файл/Файлы/Каталог, директория файлов]

    В части [Правила доступа] могут быть либо числовые, либо символьные значения.
    [Файл/Файлы/Каталог файлов] — путь к файлу, файлам или к каталогу файлов, абсолютный или относительный.

    Ключи -R, -v, -f

    • -R
      Рекурсивное изменение прав доступа для каталога и вложенных файлов и подкаталогов
    • -v
      Подробное описание применения изменения прав доступа или невозможности этого действия
    • -f
      Не выдавать сообщение об ошибке для тех файлов и каталогов, для которых невозможно изменить права доступа

    Правила доступа Chmod

    Как вы уже знаете, права доступа определяются тем, как пользователь может взаимодействовать с файлами и каталогами, а именно r — read (чтение), w — write (запись), x — execute (выполнение).
    А также, вы знаете, что эти права должны быть прописаны для трёх групп пользователей:

    1. Владелец файла или каталога;
    2. Пользователи, входящие в группу владельца;
    3. Остальные.

    Теперь посмотрим в таблицу определения прав:

    То есть, для того, чтобы записать правило для владельца дать доступ на чтение и запись, остальным дать права только на чтение , мы должны дать права (rw-r--r--)

    Теперь обратите внимание на столбец Символьная и Восьмеричная. Там визуально показано, что то, что выглядит символьно как (rw-r--r--), в восьмеричном виде выглядит как (644). Это выражение и будем использовать как числовую запись в команде.

    Теперь осталось собрать всё воедино в одну запись. Для примера, изменим права на доступ «всем дать права на чтение, владельцу право изменять содержимое» для файла index.php:

    Chmod -v 644 index.php

    Как проверить права Chmod

    ls -ld index.php

    где index.php — файл или каталог, который нужно проверить.

    Пример правильного использования Chmod

    Правила доступа по умолчанию для каталогов 755 , для файлов 644 . Поэтому, в подавляющем большинстве случаев, вам понадобятся только эти права.

    НАЗВАНИЕ

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

    СИНТАКСИС

    chmod [-fhv] [-R [-H | -L | -P]] права файл …

    ОПИСАНИЕ

    Утилита chmod изменяет биты прав доступа указанных файлов.

    Разрешенные опции:

    Не выводить диагностическое сообщение, если chmod не может изменить биты прав доступа файла. -H

    Если опция -R указана, все символические ссылки разрещены.

    Если опция -R указана, все символические ссылки запрещены.

    Рекурсивная смена прав доступа.

    Детальный вывод работы chmod.

    Если указана опция -R, опции -H, -L, -P игнорируются.Только владелец файла или супер-пользователь могут изменять права доступа.

    КОД ЗАВЕРШЕНИЯ

    При успешном завершении — 0, при ошибке > 0.

    ПРАВА ДОСТУПА

    Права доступа указываются в абсолютном или символическом виде. Абсолютный вид — сума восьмеричных значений.

    setuid bit. С установленным битом setuid файлы запускаются от имени их владельца.

    setgid bit. С установленным битом setgid файлы запускаются от имени их группы владельца.

    Владельцу разрешено чтение.

    Владельцу разрешена запись.

    Для файла — владельцу разрешенно его запускать, для директории — владельцу разрешенно просматривать содержимое.

    Групе разрешено чтение.

    Групе разрешена запись.

    Для файла — групе разрешенно его запускать, для директории — групе разрешенно просматривать содержимое.

    Другим разрешено чтение.

    Другим разрешена запись.

    Для файла — другим разрешенно его запускать, для директории — другим разрешенно просматривать содержимое.

    Пример: владельцу разрешенно чтение, запись, запуск; групе — чтение и запуск; другим — чтение и запуск. Биты setuid и setgid не установленны. 400+200+100+040+010+004+001=755.

    Символичекое представление прав:

    mode::= clause [, clause …]

    clause::= action

    action::= op

    who::= a | u | g | o

    op::= + | — | =

    perm::= r | s | t | w | x | X | u | g | o

    Символы who: u — пользователь, g — групgа, o — другие, a — эквивалентно ugo

    Символы perm

    r — чтение.

    s — setuid и setgid.

    t — sticky бит.

    w — запись.

    x — исполнение/запуск.

    X — исполнение/запуск если это директория.

    u — права доступа для владельца в оригинальном файле.

    g — права доступа для группы в оригинальном файле.

    o — права доступа для других в оригинальном файле.

    Символы op

    Добавить

    — удалить

    Очистить

    запись только владельцу, остальным чтение

    Запрет на запись группе и другим

    очистить все биты для группы и других

    СТАНДАРТЫ

    команда chmod соответствует стандарту IEEE Std 1003.2 («POSIX.2»); исключение составляет sticky-бит, который не стандартизирован.

    СОВМЕСТИМОСТЬ

    Команда chmod появилась в версии 1 AT&T UNIX

    Что такое CGI-скрипты?

    CGI - Common Gateway Interface является стандартом интерфейса (связи) внешней прикладной программы с информационным сервером типа HTTP, Web сервер. Обычно гипертекстовые документы, извлекаемые из WWW серверов, содержат статические данные. С помощью CGI можно создавать CGI-программы, называемые шлюзами, которые во взаимодействии с такими прикладными системами, как система управления базой данных, электронная таблица, деловая графика и др., смогут выдать на экран пользователя динамическую информацию. Программа-шлюз запускается WWW сервером в реальном масштабе времени. WWW сервер обеспечивает передачу запроса пользователя шлюзу, а она в свою очередь, используя средства прикладной системы, возвращает результат обработки запроса на экран пользователя. Программа-шлюз может быть закодирована на языках C/C++, Fortran, Perl, TCL, Unix Schell, Visual Basic, Apple Script. Как выполнимый модуль, она записывается в поддиректорий с именем cgi WWW сервера.

    Какие действия нужно проделать, чтобы установить права на доступ к поддиректориям внутри public_html , что означает 711 (rwx--x--x) и почему без установки этих прав сайт не будет работать корректно?

    В ОС Unix (Linux) есть команда chmod - которая меняет права доступа к файлам и директориям. Соответственно, чтобы поставить права 644 к файлу test надо дать команду:

    chmod 644 test

    На директории, также как и на файлы, устанавливаются права доступа.
    Если у пользователя есть право на чтение (r) директории, то он может просмотреть ее содержимое командой ls . С разрешением на запись в директорию (w) пользователь может создавать, удалять и редактировать файлы внутри директории. Если установлено право на запуск (x), то пользователь может войти в директорию командой cd или воспользоваться находящимися в ней файлами. Таким образом, если на директорию установлены права 711 (rwx--x--x), то это означает, что создавать, редактировать, удалять файлы и просматривать содержимое директории может только ее владелец. Использовать файлы, содержащиеся в этой директории, (запускать на выполнение, просматривать) может как ее владелец, так и другие пользователи. Установка таких прав доступа на директории внутри public_html продиктована соображениями безопасности. Если установить более мягкие ограничения на доступ к директориям, то открывается возможность несанкционированного доступа к файлам, которые в них содержатся. На cgi -скрипты (выполняемые файлы), которые должны находиться в директории public_html/cgi , следует устанавливать права 700 (rwx------), так как скрипты выполняются под UID"ом владельца.

    Что означает "Права доступа к файлам 644 (rw-r--r--)" ?

    Первая цифра - это полномочия владельца файла,
    вторая - группы к которой относится владелец,
    третья - остальных пользователей.
    В данном случае: владельцу разрешен доступ на чтение и редактирование (rw) данного файла, всем остальным только чтение (r).

    В какой системе счисления указаны права доступа к директориям и файлам?

    В восьмеричной.

    1 - x (eXecute) -- возможность исполнять данный файл;
    2 - w (Write) -- возможность записи;
    4 - r (Read) -- возможность чтения.

    Соответственно итоговые цифры получаются путем сложения.

    Как нужно поступить с .htaccess -файлом, чтобы по умолчанию (дефолтом) читались также и .shtm -файлы (т.е. сейчас в пустой папке можно положить index.htm/.html/.shtml , как в этот список добавить .shtm, .phtml (если понадобится) или .php3 и так далее.

    Укажите в .htaccess директиву AddType , в параметрах которой перечислите нужные типы файлов.
    Сразу заметим, что .php3 и .phtml не будут выполняться как
    php-скрипты.
    Все скрипты должны находиться в директории public_html/cgi , иметь расширение .cgi и права 700 .

    Могу ли я вставить в файл index.html SSI инструкцию и что мне надо для этого сделать?

    Укажите в.htaccess директиву AddHandler server-parsed, в параметрах которой перечислите нужные типы файлов.
    В данном случае директива будет выглядеть так:

    AddHandler server-parsed .html

    Я собираюсь у Вас держать web-сервер в кодировке koi8r . Что мне нужно для этого сделать?

    Наш Apache по умолчанию настроен на выдачу контента, содержащего русский текст в кодировке win-1251 .
    Чтобы использовать другую кодировку, следует прописать в файл .htaccess директиву CharsetSourceEnc . Так как Вы используете кодировку koi8-r , эта директива будет иметь вид:

    CharsetSourceEnc koi8-r

    Где можно почитать о Apache, Perl, PHP и PostgreSQL?

    Где находиться почтовая программа у Вас на сервере?

    /usr/bin/sendmail