09.10.2021

Chmod: изменение прав доступа. Команды Linux: CHMOD Команда chown — изменение владельца и группы


In our documentation of the umask command. It contains a comprehensive description of how to define and specify file permissions.

In general, chmod commands take the form:

Chmod options permissions file name

If no options are specified, chmod modifies the permissions of the file specified by file name to the permissions specified by permissions .

permissions defines the permissions for the owner of the file (the "user"), members of the group who owns the file (the "group"), and anyone else ("others"). There are two ways to represent these permissions: with symbols (alphanumeric characters), or with octal numbers (the digits 0 through 7 ).

Let"s say you are the owner of a file named myfile , and you want to set its permissions so that:

  1. the u ser can r ead, w rite, and ex ecute it;
  2. members of your g roup can r ead and ex ecute it; and
  3. o thers may only r ead it.

This command will do the trick:

Chmod u=rwx,g=rx,o=r myfile

This example uses symbolic permissions notation. The letters u , g , and o stand for "user ", "group ", and "other ". The equals sign ("= ") means "set the permissions exactly like this," and the letters "r ", "w ", and "x " stand for "read", "write", and "execute", respectively. The commas separate the different classes of permissions, and there are no spaces in between them.

Here is the equivalent command using octal permissions notation:

Chmod 754 myfile

Here the digits 7 , 5 , and 4 each individually represent the permissions for the user, group, and others, in that order. Each digit is a combination of the numbers 4 , 2 , 1 , and 0 :

  • 4 stands for "read",
  • 2 stands for "write",
  • 1 stands for "execute", and
  • 0 stands for "no permission."

So 7 is the combination of permissions 4 +2 +1 (read, write, and execute), 5 is 4 +0 +1 (read, no write, and execute), and 4 is 4 +0 +0 (read, no write, and no execute).

Syntax

chmod [OPTION ]... MODE [,MODE ]... FILE ... chmod [OPTION ]... OCTAL-MODE FILE ... chmod [OPTION ]... --reference=RFILE FILE ...

Options

-c , --changes

Like --verbose , but gives verbose output only when a change is actually made.

-f , --silent , --quiet

Quiet mode; suppress most error messages.

-v , --verbose

Verbose mode; output a diagnostic message for every file processed.

--no-preserve-root

Display a help message and exit.

The file"s owner.

hopestaff

The group to whom the file belongs.

Feb 03 15:36

The file"s mtime (date and time when the file was last modified).

file.txt

The name of the file.

Examples

chmod 644 file.htm

Set the permissions of file.htm to "owner can read and write; group can read only; others can read only".

Chmod -R 755 myfiles

Recursively (-R ) Change the permissions of the directory myfiles , and all folders and files it contains, to mode 755 : User can read, write, and execute; group members and other users can read and execute, but cannot write.

Chmod u=rw example.jpg

Change the permissions for the owner of example.jpg so that the owner may read and write the file. Do not change the permissions for the group, or for others.

Chmod u+s comphope.txt

Set the "Set-User-ID" bit of comphope.txt , so that anyone who attempts to access that file does so as if they are the owner of the file.

Chmod u-s comphope.txt

The opposite of the above command; un-sets the SUID bit.

Chmod 755 file.cgi

Set the permissions of file.cgi to "read, write, and execute by owner" and "read and execute by the group and everyone else".

Chmod 666 file.txt

Set the permission of file.txt to "read and write by everyone.".

Chmod a=rw file.txt

Accomplishes the same thing as the above command, using symbolic notation.

Related commands

chown — Change the ownership of files or directories.
getfacl — Display file access control lists.
ls — List the contents of a directory or directories.

Команда chmod , команда chown и команда chgrp.

Команда chmod предназначена для изменения прав доступа файлов и директорий в Linux. Название команды произошло от словосочетания «ch ange mod e».

Синтаксис команды chmod следующий:

Chmod разрешения имя_файла

Разрешения можно задавать двумя способами:

  • Числом
  • Символами

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

Запись прав доступа числом

Chmod 764 myfile

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

  • Первая цифра используется для указания прав доступа для пользователя.
  • Вторая цифра для группы.
  • Третья для всех остальных.

В таблице ниже приводятся все возможные комбинации разрешений rwx и соответсвующие им числа (которые используются в команде chmod):

Число Разрешения Символьное обозначение
0 разрешения отсутствуют ---
1 x — запуск --x
2 w — изменение -w-
3 x+w — запуск+изменение -wx
4 r — чтение r--
5 r+x — чтение+запуск r-x
6 r+w — чтение+изменение rw-
7 r+w+x — чтение+изменение+запуск rwx

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

Chmod 764 myfile

Это означает (см. таблицу выше), что для файла myfile мы устанавливаем права доступа 7 6 4 , которые означают:

  • 7 — права для владельца-пользователя. Владелец файла может читать, изменять и запускать файл (r+w+x).
  • 6 — права для группы. Пользователи, которые принадлежат группе могут читать и изменять файл (r+w).
  • 4 — права для всех остальных. Все остальные могут только читать файл (r).

Если записать 764 с помощью символов (см. таблицу), то мы получим: «rwxrw-r- ».

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

Числовое
обозначение
"rwx"-обозначение Описание
400 -r-------- Владелец файла может только читать файл. Для всех остальных все действия с файлом запрещены.
644 -rw-r--r-- Все пользователи могут читать файл. Владелец может изменять файл.
660 -rw-rw---- Владелец и группа могут читать и изменять файл. Для всех остальных все действия с файлом запрещены.
664 -rw-rw-r-- Все могут читать файл. Владелец и группа могут изменять.
666 -rw-rw-rw- Все могут читать и изменять файл.
700 -rwx------ Владелец может читать, изменять и запускать файл. Для всех остальных все действия с файлом запрещены.
744 -rwxr--r-- Все могут читать файл. Владелец может также изменять и запускать файл.
755 -rwxr-xr-x Все могут читать и запускать файл. Владелец может также изменять файл.
777 -rwxrwxrwx Все пользователи могут читать, изменять и редактировать файл.

Запись прав доступа символами

Chmod +x myfile1 chmod g=rw myfile2 chmod u-w myfile3

Как вы можете видеть, в данном формате права доступа задаются символами rwx , но в синтаксисе используются и другие вспомогательные символы, например, математические операции «+ » и «- » и такие символы как, например, «g » или «u ».

Общий синтаксис можно записать примерно так:

Chmod (владелец)(математическая операция)(разрешения) имя_файла

Обозначения для владельцев файла следующие:

Математические операции означают следующее:

В одной команде можно перечислять владельцев и их разрешения через запятую (см. пример ниже).

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

  • chmod +x myfile1

    В данном случае мы не используем обозначения для владельцев, а значит разрешения устанавливаются для всех пользователей. «+x » означает — установить разрешение на запуск (x ) файла для всех пользователей. Это эквивалентно выполнению команды: chmod a+x myfile1 .

  • chmod g=rw myfile2

    Здесь используется обозначение g и символ равенства «= ». Это означает, что для группы мы устанавливаем права доступа на чтение и запись файла (rw ).

  • chmod u-w myfile3

    Для владельца файла (u ) мы удаляем разрешение на изменение (w ) файла.

  • chmod ug+x myfile2

    Разрешаем владельцу (u ) и группе (g ) запускать файл (x ).

  • chmod u+x,g-w,o-r myfile3

    Это как раз тот случай, когда мы перечисляем владельцев через запятую и устанавливаем для них разрешения. Для владельца файла (u ) мы разрешаем запуск файла, для группы (g ) мы запрещаем изменять файл, для всех остальных (o ) мы запрещаем читать файл.

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

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

Chmod -R 644 Mydir

И еще один момент. Если пользователь не является владельцем файла, но ему нужно изменить права доступа у данного файла, то команду chmod необходимо выполнять с использованием sudo , например:

Sudo chmod 644 file

Видео-обзор команды chmod

Команда chown — изменение владельца и группы

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

Для изменения владельца файла используется следующий синтаксис:

Chown новый_владелец имя_файла

myfile нового владельца vasya :

Chown vasya myfile

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

Chown новый_владелец:новая_группа имя_файла

Например, установим для файла myfile нового владельца vasya и группу sambashare :

Chown vasya:sambashare myfile

Команда chgrp — изменение группы

Есть еще одна команда — chgrp . Она позволяет изменить только группу. Например:

Chgrp sambashare myfile

Резюме

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

Разрешения задаются для владельца, группы и для всех остальных.

Есть три вида разрешений — r — чтение, w — изменение, x — запуск.

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

Чтобы изменить владельца или группу используется команда chown .

Чтобы изменить группу используется chgrp .

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

Такая защита обеспечивается за счет того, что 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 для каталога (папки) при выборе «Изменить атрибуты файла» появится аналоговое окно, несколько отличное от расположенного выше, а именно:

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

Команда chmod (change mode – сменить режим) предназначена для изменения прав доступа к файлам и каталогам в Unix-подобных операционных системах.

Синтаксис команды выглядит следующим образом:

chmod [ключи] установка_прав имя_файла

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

Изменение прав с помощью символьной нотации

При установке прав с помощью символов в первом аргументе (установка_прав) программы chmod используются три группы символов.

В первой группе указывается, кому будет предоставляться или запрещаться доступ: владельцу (u), группе (g), остальным (o) или всем (a). Можно указать как одну, так сразу несколько категорий.

Вторая группа обозначает запрещение, разрешение или назначение права и всегда состоит из одного символа: -, + или =.

В третьей группе перечисляется изменяемые права: чтение (r), запись (w), исполнение (x). Можно указывать сразу несколько прав.

На скрине в первом примере группе добавляется право на запись, что выражается как g+w. Во втором примере группе и остальным назначается право r--. В третьем случае остальным запрещается читать файл. Отметим, что один и тот же результат можно получить разными способами: как через назначение, так добавлением или удалением права.

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

chmod o-r,a-w month.txt text.txt

Установка прав с помощью чисел

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

7 – разрешены чтение, запись, исполнение
6 – разрешены чтение и запись
5 – разрешены чтение и исполнение
4 – разрешено только чтение
0 – ничего не разрешено

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

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

Установка прав для каталогов

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

В примере мы устанавливаем для каталога и вложенных в него объектов права 754. По отношению к каталогам это означает, что владелец может делать все, группа – просматривать содержимое каталога, остальные – только узнавать список объектов каталога. Обратите внимание на использование ключа -d команды ls. Он позволяет получить сведения о самом каталоге, а не его содержимом.

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

В примере команда chmod применяется в числовой нотации. При этом используется дополнительная цифра 1, которая обозначает установку t-бита. В буквенной нотации достаточно просто написать +t без указания категории пользователей. В выдаче команды ls мы видим символ t вместо икса в тройке прав всех остальных. Это не значит, что бит t заменяет бит x. Это особенность вывода информации. Буква t говорит, что право на исполнение есть. Если бы его не было, использовалась бы заглавная буква.

Продолжаем подробно рассказывать вам о пользователях и группах в Linux и сегодня поговорим о том как пользоваться командами chown и chmod.

CHOWN

Chown — от английского change own. И так, как вы знаете в Linux есть пользователи и группы. У каждого пользователя есть свои файлы, созданные или загруженные. Каждый пользователь находится в собственной группе и может быть объеден c другими пользователями в другие группы.

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

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

Sudo chown userName text.txt

В данном примере мы присвоили файл text.txt пользователю userName.

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

Sudo chgrp groupName text.txt

Для того чтобы не вводить 2 разные команды делают так:

Sudo chown userName:groupName text.txt

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

sudo chown имя_владельца : имя_группы text.txt

Если вам нужно поменять в директории владельца и группу, а там множество файлов и папок тогда используйте ключ -R:

Sudo chown -R userName:groupName /var/www/site/

CHMOD

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

Права на файл могут обозначаться цифрами и буквами:

Значения прав в цифрах суммируются:

  • полные права (rwx) 7 = 4 + 2 +1
  • чтение и запись (rw-) 6 = 4 + 2 + 0
  • чтение и выполнение (r-x) 5 = 4 + 0 + 1
  • только чтение 4 (r—) = 4 + 0 + 0
  • только запись 2 (-w-) = 0 + 2 + 0
  • права отсутствуют (—) 0 = 0 + 0 + 0

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

Владелец Группа Остальные
u g o
права доступа буквы права доступа цифры
rwxrwxrwx 777 читают, записывают, выполняют все
rwxr-xr-x 755 читает, записывает, выполняет читать и запускать
rw-r—r— 644 чтение и запись только четние
r——— 400 читает только владец

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

Назначение прав доступа цифрами

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

Sudo chmod 755 text.txt

Для директорий необходимо после chmod добавить ключ -R .

Чуть ниже полезная команда, как массово поменять права во всех папках и под папках.

Для папок:

Find /ваш_путь -type d -exec chmod 755 {} \;

Для файлов:

Find /ваш_путь -type f -exec chmod 644 {} \;

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

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

Как вы знаете что есть владелец, группа, остальные пользователи, они обозначаются следующим образом:

u user Владелец
g group

© 2024
maccase.ru - Android. Бренды. Железо. Новости