Интернет. Безопасность. Программы. Полезные советы

Команда chmod - Примеры использования. Команда chmod - Примеры использования Привилегии для групп пользователей

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

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

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

CHMOD для пользователей и права доступа к файлам и папкам (директориям)

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

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

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

  1. «user» - владелец файла
  2. «group» - один из членов группы, к которой принадлежит и владелец
  3. «world» - “остальной мир”, то есть все остальные пользователи

Если вы подключаетесь к серверу по и заходите под своим логином и паролем, то будете идентифицированы как “user” (u), если кто-либо другой подключается по FTP, то будет определен как “group” (g), если же пользователь использует браузер, то попадает под категорию “world” (o).

Теперь о правах доступа CMOD к файлам и директориям. По сути они немного отличаются, хотя обозначения применяются одни и те же. Права доступа к файлам:

  • r (read) - право на чтение данных файла
  • w (wright) - право на изменение содержимого (можно произвести только редактирование содержимого - запись, но удалять нельзя)
  • x (eXutive) - право на исполнение файла

Права доступа к папкам (директориям):

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

Значком дефиса «-» отмечают отсутствие каких-либо прав. Все эти права прописываются администратором, который получает эту возможность посредством ввода пароля. Если мы сможем установить максимально возможные ограничения на права доступа CHMOD к тем или иным файлам ресурса, то сможем практически исключить опасность реализации своего “черного дела” вирусным программам.

Для наглядности рассмотрим пример, когда владелец файла u имеет все возможные права: на чтение, запись и исполнение. Пользователи, отнесенные к категории g (group) - только на чтение и запись, все остальные (w) имеют только право на чтение. Тогда запись CHMOD будет выглядеть следующим образом: «rwx rw- r- -».

Права доступа к файлам и папкам в цифровом выражении: CHMOD (777, 755, 444)

Но чаще вебмастерам в своей практической деятельности приходится назначать те или иные права доступа в цифровом выражении:

  • r (чтение) - 4
  • w (запись) - 2
  • x (исполнение) - 1
  • - (нет прав) - 0

Теперь вновь разберем вышеприведенный пример для назначения прав доступа «rwx rw- r- -». Для отображения прав каждого пользователя применяется сложение его прав (r чтение + w запись + x исполнение). Таким образом часть записи для владельца файла u (user) - «rwx » превратится в 7 (4+2+1). Для члена группы g (group) - «rw-» в 6 (4+2+0) и для остальных пользователей o (world) - «r- -» в 4 (4+0+0). В качестве резюме представлю сводную таблицу со значениями прав доступа CHMOD, выраженными как в буквах, так и в цифрах:


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


Это основные комбинации, которые наиболее часто используются в работе вебмастера. Остальные формируются по аналогии. Если вы являетесь администратором сайта или блога, но работаете с проектом, не подсоединившись по FTP протоколу, вы также относитесь к группе “Остальные пользователи”. В таком случае при работе с сайтом в таком режиме нужно учитывать последнюю цифру в значении CHMOD.

Обычно на сервере, где находятся файлы вашего WordPress блога, на папки выставляются права доступа 755, а на файлы, которые входят в их состав, 644. Это справедливо, когда ресурс построен с использованием файлов HTML, однако в современных условиях для построения сайта массово используются CMS (системы управления контентом), к которым относится и WordPress. А здесь могут находиться объекты, в которые нужно производить записи от группы пользователей “world”. Могут находиться папки , в которые загружается контент, в том числе изображения.

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

777 - для папок, в которых постоянно происходит запись и стирание файлов (для папки кэширования)
755 - применительно к папкам, в которые постоянно записываются файлы, но не удаляются
666 - для файлов, в которые необходимо время от времени добавлять запись (например, файл.htaccess)
644 - для файлов, которые используются только для чтения (.php, .html и др.)

Как настроить права доступа CHMOD с помощью FTP менеджера FileZilla

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

Теперь подробнее о том, как проделать эту операцию с помощью . Для этого открываем программу и соединяемся посредством FTP к серверу хостера. В левой части «Удаленный сервер» сначала отмечаем файлы, атрибуты которых будут подвергнуты редактированию:

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

Здесь присваиваем нужные значения CHMOD для выбранного (или выбранных) файлов. Но это только, если вы выбирали файл или группу файлов. В случае, если вы хотите установить или изменить значения CHMOD для каталога (папки) при выборе «Изменить атрибуты файла» появится аналоговое окно, несколько отличное от расположенного выше, а именно:

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

Одной из важнейших составляющих безопасности сайта явлются правильные права доступа к файлам . Думаю, что многие из Вас видели подобные права, например, "777 ", "755 ", "444 " и другие. Иногда перед ними идёт ещё ведущий "0 ", но в этой статье мы его опустим. Вот что они означают и как составляются, а также как правильно их использовать, я попытаюсь объяснить в сегодняшней статье.

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

Продолжим. Права состоят из трёх цифр. Первая цифра отвечает за права владельца файла, вторая цифра - за группу владельца , а третья цифра - за права других пользователей .

Далее. Каждая цифра отвечает за количество прав. Считается она следующим образом: за права чтения даётся 4 , за право записи даётся ещё 2 , за выполнение ещё 1 . Получается, что максимально возможные права - это 4+2+1=7 (чтение+запись+выполнение). Если группа может читать и выполнять файл, но не может записывать, то права будут 4+1=5 (чтение+выполнение).

Чтобы стало ещё понятнее, возьмём пример: права "754 ", и подробно разберём их:

  • 7 - владелец файла может читать (4 ), записывать (2 ) и выполнять (1 ) файл.
  • 5 - группа владельца может читать (4 ) и выполнять (1 ) файл.
  • 4 - все остальные пользователи могут только читать (4 ) файл.

Многие могут спросить: "А что же с каталогами? ". Каталоги - это те же файлы, поэтому на них распространяются те же правила.

Теперь о том, как нужно выставлять права доступа к файлам на Вашем сайте :

  • На все файлы поставить права "644 ".
  • На все директории поставить права "755 ".
  • На особо важные файлы (как правило, это файл config.php , в котором содержатся пароли от базы данных) необходимо поставить права "444 ".
  • На все директории, в которые пользователь может загружать файлы, надо ставить права 777 . Например, это папка с аватарками.

И последний момент, который хотелось бы осветить - это права в системе Windows . Самое главное - это понять, что в Windows нет никаких прав доступа вообще. Они относятся только к Unix-системам . Поэтому бесполезно на каком-нибудь Denwer узнавать, какие права доступа к файлам у Вас стоят.

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

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

С проблемой неправильных прав вы можете столкнуться при переезде от другого хостера. Например, вы решили у хостинг-провайдера с Windows OS. А потом увидели, что есть специализированный хостинг для CMS — как раз то, что вам нужно. И вы решили перебраться на с Linux OS. Вот тут-то и начинаются проблемы. Но не отчаивайтесь, эта статья поможет вам во всем разобраться.

Рядовые пользователи Windows от таких нюансов далеки. Хотя понятие уровней доступа и существует в этой ОС, но используется редко. Поэтому, если вы хотите , можете смело пропустить эту статью.

В случае с Linux дело обстоит иначе. UNIX-подобные системы предполагают разные уровни доступа и разные права на данные. Файлы и папки рассчитаны на работу трех категорий пользователей :
  • владельца (user);
  • группы (group), в которую входят другие пользователи и может входить владелец файла;
  • остальных (others) – например, посетителей сайта, которые должны хотя бы иметь права просматривать выставленный вами контент.

Права доступа Linux пользователей могут быть следующими:

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

read (4 ) – чтение – право на чтение содержимого файла;

write (2 ) – редактирование – право на создание, изменение, удаление файла или директории;

execute (1 ) – исполнение – право на исполнение файла и вход в директорию (проверяется в первую очередь).

Таким образом, права пользователей могут распределяться следующим образом:

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

Какие права для файлов и папок использовать в cPanel?

Стандартные права доступа, актуальные и для нашего виртуального хостинга:

Файлы – 644

Папки – 755 .

Они предполагает следующие привилегии:

Почему именно 755 и 644?

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

Работа сайта в большинстве случае связана с использованием различных скриптов, которые добавляют ему интерактивности. Для запуска скриптов на наших серверах виртуального хостинга реализован suPHP, который запускает и исполняет скрипт от имени его владельца. Поэтому не нужно предоставлять права на запись всему веб-серверу Apache (777), как это бывает на некоторых хостингах с mod_PHP. Ведь если дать максимальные права на системные файлы и папки, есть риск, что открытым доступом воспользуются злоумышленники.

Работа со скриптами через suPHP, и соответственно, настройка прав 755 и 644 рекомендуется разработчиками многих cms, например, популярных WordPress и Joomla.

Иногда, при смене хостингового провайдера и переносе данных на новый сервер, на данных остаются старые права. Чтобы сменить их, нужно:

1. Зайти в cPanel от имени пользователя

2. В разделе Файлы выбрать Диспетчер файлов (в WHM недоступен, только через сPanel)

3. Перейти в каталог, в котором необходимо изменить права для файлов/папок. Например, в каталог public_html .

4. Изменить права для файла/каталога можно двумя способами.

Первый способ изменения прав из меню Диспетчер Файлов:

1) Выделить нужную папку/файл и кликнуть на права (непосредственно на цифры, например, 0755 ). Подробнее на скриншоте ниже.

2) Вписать нужные права и нажать Save .

1) Выделить нужную папку или файл и нажать на иконку Разрешения (функция доступна также при нажатии правой клавиши мыши по файлу/папке).

2) В новом окне выставить нужные права и нажать Change Permissions .

1. Нужно подключиться к хостинговой учетной записи по FTP;

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

3. В новом окне выставить права. В случае директории, сменить права можно рекурсивно, выбрав опцию “Перенаправить во вложенные каталоги ”.

Как поменять права на файлы и папки по SSH?

Владельцы могут сменить права через терминал с помощью команды «chmod».

  • Например, настроить права 755 для папки media нужно следующим образом:
chmod 755 media

Обратите внимание: смена происходит в той директории, в которой вы сейчас находитесь.

  • Для смены прав для всех файлов текущей директории используется знак “звездочка”
chmod 644 *
  • Если нужно сменить права на файлы во всех подкаталогах определенной папки, то поможет рекурсивная смена, которая выполняется с помощью добавления ключа -R и звездочки:
chmod -R 644 *

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

Chmod 644 file1.txt file2.txt file3.txt

Интересуетесь, ? Хотите, чтобы хостинг и обходились? Наши предложения вам не просто понравятся! Вы сможете прилично сэкономить, выбрав любой из наших пакетов услуг.

НАЗВАНИЕ

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

Многие начинающие пользователи ОС Linux часто теряются при назначении прав доступа при помощи команды chmod .


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

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

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

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

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

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

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