特殊:Badtitle/NS100:FilePermissionsRu:修订间差异
小 新页面: {{From|https://help.ubuntu.com/community/FilePermissionsRu}} {{Languages|UbuntuHelp:FilePermissionsRu}} == Права доступа в системе Linux == Поскольку Linux... |
小无编辑摘要 |
||
第1行: | 第1行: | ||
{{From|https://help.ubuntu.com/community/FilePermissionsRu}} | {{From|https://help.ubuntu.com/community/FilePermissionsRu}} | ||
{{Languages|UbuntuHelp:FilePermissionsRu}} | {{Languages|UbuntuHelp:FilePermissionsRu}} | ||
== Права доступа в системе Linux == | == Права доступа в системе Linux == | ||
Поскольку Linux (да и UNIX вообще) - многопользовательская OS, в ней существует система прав доступа к файлам, служащая для защиты файлов каждого пользователя от влияния других пользователей системы. | Поскольку Linux (да и UNIX вообще) - многопользовательская OS, в ней существует система прав доступа к файлам, служащая для защиты файлов каждого пользователя от влияния других пользователей системы. | ||
Права доступа подразделяются на три типа: | Права доступа подразделяются на три типа: | ||
* '''чтение''' (read) | * '''чтение''' (read) | ||
* '''запись''' (write) | * '''запись''' (write) | ||
* '''выполнение''' (execute) | * '''выполнение''' (execute) | ||
Разрешение на чтение позволяет пользователю читать содержимое файлов, а в случае каталогов - просматривать перечень имен файлов в каталоге (используя, например, команду '''ls'''). Разрешение на запись позволяет пользователю писать в файл, изменять его или удалять. Для каталогов это дает право cоздавать в каталоге новые файлы и каталоги, или удалять файлы в этом каталоге. Наконец, разрешение на выполнение позволяет пользователю выполнять файлы (как бинарные программы, так и командные файлы). Если на файле стоит атрибут ''Execute'', то независимо от его расширения он считается программой, которую можно запустить. (Вот почему в *nix не принято ставить исполняемым файлам расширения по типу DOS'овских ''*.com'', ''*.exe'', ''*.bat''. Вообще в Unix/Linux нет такого жесткого понятия ''расширение файла'', как в Dos/Windows, и система сама определяет тип файлов независимо от их расширения, но это - уже другая история...). Так же атрибут выполнения может стоять у shell-скриптов, CGI-скриптов, и у всего, что можно хоть как-то запустить. Разрешение на выполнение применительно к каталогам означает возможность выполнять команды вроде '''cd'''. | Разрешение на чтение позволяет пользователю читать содержимое файлов, а в случае каталогов - просматривать перечень имен файлов в каталоге (используя, например, команду '''ls'''). Разрешение на запись позволяет пользователю писать в файл, изменять его или удалять. Для каталогов это дает право cоздавать в каталоге новые файлы и каталоги, или удалять файлы в этом каталоге. Наконец, разрешение на выполнение позволяет пользователю выполнять файлы (как бинарные программы, так и командные файлы). Если на файле стоит атрибут ''Execute'', то независимо от его расширения он считается программой, которую можно запустить. (Вот почему в *nix не принято ставить исполняемым файлам расширения по типу DOS'овских ''*.com'', ''*.exe'', ''*.bat''. Вообще в Unix/Linux нет такого жесткого понятия ''расширение файла'', как в Dos/Windows, и система сама определяет тип файлов независимо от их расширения, но это - уже другая история...). Так же атрибут выполнения может стоять у shell-скриптов, CGI-скриптов, и у всего, что можно хоть как-то запустить. Разрешение на выполнение применительно к каталогам означает возможность выполнять команды вроде '''cd'''. | ||
Эти типы прав доступа могут быть предоставлены для трех классов пользователей: | Эти типы прав доступа могут быть предоставлены для трех классов пользователей: | ||
* '''владельцы''' - у каждого файла в Linux'e есть один владелец. | * '''владельцы''' - у каждого файла в Linux'e есть один владелец. | ||
* '''группы''' - с каждым файлом связана группа пользователей этого файла. | * '''группы''' - с каждым файлом связана группа пользователей этого файла. | ||
* '''остальные''' пользователи. | * '''остальные''' пользователи. | ||
Владельцем файла становится юзер, который создал этот файл. Короче говоря, для файла все юзеры делятся на 3 типа: хозяин, или владелец, юзеры, состоящие в одной группе с владельцем, и все остальные юзеры. Для каждого типа - свои права. Учтите, что директории и все системные устройства в UNIX являются обычными файлами. Тот же самый /dev/fd0 - это не сам Floppy disk, а всего лишь файл, связанный с флопповодом. Поэтому, если root запретил юзеру доступ к этому файлу, тот не сможет использовать флопповод (так же обстоят дела с модемами, хардами и т.п.). Владельцем всех системных файлов является root. Он же имеет право забирать файлы у одного юзера и передавать их другому (менять владельца). | Владельцем файла становится юзер, который создал этот файл. Короче говоря, для файла все юзеры делятся на 3 типа: хозяин, или владелец, юзеры, состоящие в одной группе с владельцем, и все остальные юзеры. Для каждого типа - свои права. Учтите, что директории и все системные устройства в UNIX являются обычными файлами. Тот же самый /dev/fd0 - это не сам Floppy disk, а всего лишь файл, связанный с флопповодом. Поэтому, если root запретил юзеру доступ к этому файлу, тот не сможет использовать флопповод (так же обстоят дела с модемами, хардами и т.п.). Владельцем всех системных файлов является root. Он же имеет право забирать файлы у одного юзера и передавать их другому (менять владельца). | ||
== Команда chmod == | == Команда chmod == | ||
Изменить права доступа к файлу может либо его владелец, либо сам root. Делается это командой chmod. Существует две формы представления прав доступа: символьная и цифровая. | Изменить права доступа к файлу может либо его владелец, либо сам root. Делается это командой chmod. Существует две формы представления прав доступа: символьная и цифровая. | ||
=== Символьная форма прав доступа === | === Символьная форма прав доступа === | ||
Если войти в любой каталог, где есть файлы, и набрать '''ls -l''', то появится список всех файлов в этом каталоге и права доступа в символьной форме. Строка прав доступа состоит из 10 символов. Первый символ указывает на тип файла: '''d''' - директория, '''-''' - обычный файл. Три последующих - права доступа владельца к этому файлу. Если первый символ из этих трех - '''r''', владелец имеет право читать этот файл, а если '''-''', то не имеет. Следующие 2 символа - '''w''' - писать и '''x''' - запускать. Если вместо них стоит '''-''', значит, владелец этого права не имеет. Еще 3 символа - права доступа группы, еще три - права всех остальных пользователей. | Если войти в любой каталог, где есть файлы, и набрать '''ls -l''', то появится список всех файлов в этом каталоге и права доступа в символьной форме. Строка прав доступа состоит из 10 символов. Первый символ указывает на тип файла: '''d''' - директория, '''-''' - обычный файл. Три последующих - права доступа владельца к этому файлу. Если первый символ из этих трех - '''r''', владелец имеет право читать этот файл, а если '''-''', то не имеет. Следующие 2 символа - '''w''' - писать и '''x''' - запускать. Если вместо них стоит '''-''', значит, владелец этого права не имеет. Еще 3 символа - права доступа группы, еще три - права всех остальных пользователей. | ||
Примеры: | Примеры: | ||
'''<code><nowiki>drwxrwxrwx</nowiki></code>''' - директория, к которой все имеют любые права доступа. | '''<code><nowiki>drwxrwxrwx</nowiki></code>''' - директория, к которой все имеют любые права доступа. | ||
'''<code><nowiki>-rwxr--r--</nowiki></code>''' - обычный файл, владелец может делать все, а остальные - только читать. | '''<code><nowiki>-rwxr--r--</nowiki></code>''' - обычный файл, владелец может делать все, а остальные - только читать. | ||
'''<code><nowiki>-r--------</nowiki></code>''' - обычный файл, который владелец может только читать, а остальные пользователи не видят. | '''<code><nowiki>-r--------</nowiki></code>''' - обычный файл, который владелец может только читать, а остальные пользователи не видят. | ||
Важно заметить, что права доступа, которые имеет файл, зависят также от прав доступа к каталогу, в котором этот файл находится. Например, даже если файл имеет '''<code><nowiki>-rwxrwxrwx</nowiki></code>''', другие пользователи не смогут до него добраться, если у них не будет прав на чтение и выполнение каталога, в котором находится файл. Например, если юзер захочет ограничить доступ ко всем своим файлам, он может просто изменить права доступа своего домашнего каталога ''/home/user'' на '''<code><nowiki>drwx------</nowiki></code>'''. Таким образом, никто другой не будет иметь доступ в его каталог, а следовательно посторонним будут недоступны и все файлы. Так что, пользователь может не заботиться об индивидуальной защите своих файлов. Другими словами, чтобы иметь доступ к файлу, вы должны иметь доступ ко всем каталогам, лежащим на пути от корня к этому файлу, а также разрешение на доступ собственно к этому файлу. Обычно пользователи UNIX весьма открыты всеми своими файлами. По умолчанию файлам устанавливается защита '''<code><nowiki>-rw-r--r--</nowiki></code>''', которая позволяет другим пользователям читать файлы, но ни коим образом их не менять. Каталогам обычно устанавливаются права доступа '''<code><nowiki>drwxr-xr-x</nowiki></code>''', что позволяет другим пользователям ходить с правами экскурсантов по вашим каталогам, но ничего в них не трогать и не записывать. | Важно заметить, что права доступа, которые имеет файл, зависят также от прав доступа к каталогу, в котором этот файл находится. Например, даже если файл имеет '''<code><nowiki>-rwxrwxrwx</nowiki></code>''', другие пользователи не смогут до него добраться, если у них не будет прав на чтение и выполнение каталога, в котором находится файл. Например, если юзер захочет ограничить доступ ко всем своим файлам, он может просто изменить права доступа своего домашнего каталога ''/home/user'' на '''<code><nowiki>drwx------</nowiki></code>'''. Таким образом, никто другой не будет иметь доступ в его каталог, а следовательно посторонним будут недоступны и все файлы. Так что, пользователь может не заботиться об индивидуальной защите своих файлов. Другими словами, чтобы иметь доступ к файлу, вы должны иметь доступ ко всем каталогам, лежащим на пути от корня к этому файлу, а также разрешение на доступ собственно к этому файлу. Обычно пользователи UNIX весьма открыты всеми своими файлами. По умолчанию файлам устанавливается защита '''<code><nowiki>-rw-r--r--</nowiki></code>''', которая позволяет другим пользователям читать файлы, но ни коим образом их не менять. Каталогам обычно устанавливаются права доступа '''<code><nowiki>drwxr-xr-x</nowiki></code>''', что позволяет другим пользователям ходить с правами экскурсантов по вашим каталогам, но ничего в них не трогать и не записывать. | ||
Но многие пользователи хотят держать других подальше от своих файлов. Установив права доступа файла '''<code><nowiki>-rw-------</nowiki></code>''', вы никому не покажете этот файл и не дадите записать в него. Также хорошо закрывает файлы защита соответствующего каталога '''<code><nowiki>drwx------</nowiki></code>'''. | Но многие пользователи хотят держать других подальше от своих файлов. Установив права доступа файла '''<code><nowiki>-rw-------</nowiki></code>''', вы никому не покажете этот файл и не дадите записать в него. Также хорошо закрывает файлы защита соответствующего каталога '''<code><nowiki>drwx------</nowiki></code>'''. | ||
С правами доступа в символьной форме '''chmod''' работает так: | С правами доступа в символьной форме '''chmod''' работает так: | ||
<pre><nowiki> | <pre><nowiki> | ||
第47行: | 第29行: | ||
Кратко, вы выбираете из ''all'' (все), ''user'' (пользователь), ''group'' (группа) или ''other'' (другие). Далее указываете, либо вы добавляете права ('''+'''), либо лишаете прав ('''-'''). И наконец, вы указываете один или несколько режимов: ''read'', ''write'' | Кратко, вы выбираете из ''all'' (все), ''user'' (пользователь), ''group'' (группа) или ''other'' (другие). Далее указываете, либо вы добавляете права ('''+'''), либо лишаете прав ('''-'''). И наконец, вы указываете один или несколько режимов: ''read'', ''write'' | ||
или ''execute''. | или ''execute''. | ||
=== Числовая форма прав доступа === | === Числовая форма прав доступа === | ||
Теперь права доступа в числовой форме. Для некоторых эта форма может показаться более простой. Надо запомнить только следующее: | Теперь права доступа в числовой форме. Для некоторых эта форма может показаться более простой. Надо запомнить только следующее: | ||
* 400 - владелец имеет право на чтение | * 400 - владелец имеет право на чтение | ||
* 200 - владелец имеет право на запись | * 200 - владелец имеет право на запись | ||
第61行: | 第40行: | ||
* 2 - остальные имеют право на запись | * 2 - остальные имеют право на запись | ||
* 1 - остальные имеют право на выполнение | * 1 - остальные имеют право на выполнение | ||
Теперь осталось только просуммировать числа, соответствующие тем правам доступа, которые мы хотим поставить файлу. | Теперь осталось только просуммировать числа, соответствующие тем правам доступа, которые мы хотим поставить файлу. | ||
=== Примеры === | === Примеры === | ||
==== Символьная форма ==== | ==== Символьная форма ==== | ||
第86行: | 第63行: | ||
</nowiki></pre> | </nowiki></pre> | ||
Запрещает все ('''read''', '''write''' и '''execute''') пользователям категории другие ('''other'''). | Запрещает все ('''read''', '''write''' и '''execute''') пользователям категории другие ('''other'''). | ||
=== Числовая форма=== | === Числовая форма=== | ||
400+200+100+40+4=744 | 400+200+100+40+4=744 | ||
<pre><nowiki> | <pre><nowiki> | ||
第94行: | 第69行: | ||
</nowiki></pre> | </nowiki></pre> | ||
владелец может делать все, а остальные - только читать. | владелец может делать все, а остальные - только читать. | ||
400+40+4=444 | 400+40+4=444 | ||
<pre><nowiki> | <pre><nowiki> | ||
第100行: | 第74行: | ||
</nowiki></pre> | </nowiki></pre> | ||
все имеют право только на чтение. | все имеют право только на чтение. | ||
400+100+10+1=611 | 400+100+10+1=611 | ||
<pre><nowiki> | <pre><nowiki> | ||
第106行: | 第79行: | ||
</nowiki></pre> | </nowiki></pre> | ||
владелец может читать и выполнять, остальные - только выполнять. | владелец может читать и выполнять, остальные - только выполнять. | ||
400+200+100+40+10+4+1=755 | 400+200+100+40+10+4+1=755 | ||
<pre><nowiki> | <pre><nowiki> | ||
第112行: | 第84行: | ||
</nowiki></pre> | </nowiki></pre> | ||
Классическая команда. Скрипт - это исполняемый файл, и все должны иметь к нему доступ на чтение и выполнение. Только владелец этого файла может его изменять или удалять. | Классическая команда. Скрипт - это исполняемый файл, и все должны иметь к нему доступ на чтение и выполнение. Только владелец этого файла может его изменять или удалять. | ||
== Команда chown == | == Команда chown == | ||
Изменение владельца файла осуществляется командой chown, например: | Изменение владельца файла осуществляется командой chown, например: | ||
<pre><nowiki> | <pre><nowiki> | ||
第123行: | 第93行: | ||
sudo chown -R <имя нового владельца> <имя каталога> | sudo chown -R <имя нового владельца> <имя каталога> | ||
</nowiki></pre> | </nowiki></pre> | ||
== Команда chgroup == | == Команда chgroup == | ||
Изменение группы, которой принадлежит файл. | Изменение группы, которой принадлежит файл. | ||
<pre><nowiki> | <pre><nowiki> | ||
第134行: | 第102行: | ||
sudo chown -R <название новой группы> <имя каталога> | sudo chown -R <название новой группы> <имя каталога> | ||
</nowiki></pre> | </nowiki></pre> | ||
---- | ---- | ||
[mailto:[email protected] Valery V. Kachurov] | [mailto:[email protected] Valery V. Kachurov] | ||
[[category:UbuntuHelp]] | [[category:UbuntuHelp]] |
2007年11月30日 (五) 17:13的版本
文章出处: |
{{#if: | {{{2}}} | https://help.ubuntu.com/community/FilePermissionsRu }} |
点击翻译: |
English {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/af | • {{#if: UbuntuHelp:FilePermissionsRu|Afrikaans| [[::FilePermissionsRu/af|Afrikaans]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/ar | • {{#if: UbuntuHelp:FilePermissionsRu|العربية| [[::FilePermissionsRu/ar|العربية]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/az | • {{#if: UbuntuHelp:FilePermissionsRu|azərbaycanca| [[::FilePermissionsRu/az|azərbaycanca]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/bcc | • {{#if: UbuntuHelp:FilePermissionsRu|جهلسری بلوچی| [[::FilePermissionsRu/bcc|جهلسری بلوچی]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/bg | • {{#if: UbuntuHelp:FilePermissionsRu|български| [[::FilePermissionsRu/bg|български]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/br | • {{#if: UbuntuHelp:FilePermissionsRu|brezhoneg| [[::FilePermissionsRu/br|brezhoneg]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/ca | • {{#if: UbuntuHelp:FilePermissionsRu|català| [[::FilePermissionsRu/ca|català]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/cs | • {{#if: UbuntuHelp:FilePermissionsRu|čeština| [[::FilePermissionsRu/cs|čeština]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/de | • {{#if: UbuntuHelp:FilePermissionsRu|Deutsch| [[::FilePermissionsRu/de|Deutsch]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/el | • {{#if: UbuntuHelp:FilePermissionsRu|Ελληνικά| [[::FilePermissionsRu/el|Ελληνικά]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/es | • {{#if: UbuntuHelp:FilePermissionsRu|español| [[::FilePermissionsRu/es|español]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/fa | • {{#if: UbuntuHelp:FilePermissionsRu|فارسی| [[::FilePermissionsRu/fa|فارسی]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/fi | • {{#if: UbuntuHelp:FilePermissionsRu|suomi| [[::FilePermissionsRu/fi|suomi]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/fr | • {{#if: UbuntuHelp:FilePermissionsRu|français| [[::FilePermissionsRu/fr|français]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/gu | • {{#if: UbuntuHelp:FilePermissionsRu|ગુજરાતી| [[::FilePermissionsRu/gu|ગુજરાતી]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/he | • {{#if: UbuntuHelp:FilePermissionsRu|עברית| [[::FilePermissionsRu/he|עברית]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/hu | • {{#if: UbuntuHelp:FilePermissionsRu|magyar| [[::FilePermissionsRu/hu|magyar]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/id | • {{#if: UbuntuHelp:FilePermissionsRu|Bahasa Indonesia| [[::FilePermissionsRu/id|Bahasa Indonesia]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/it | • {{#if: UbuntuHelp:FilePermissionsRu|italiano| [[::FilePermissionsRu/it|italiano]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/ja | • {{#if: UbuntuHelp:FilePermissionsRu|日本語| [[::FilePermissionsRu/ja|日本語]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/ko | • {{#if: UbuntuHelp:FilePermissionsRu|한국어| [[::FilePermissionsRu/ko|한국어]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/ksh | • {{#if: UbuntuHelp:FilePermissionsRu|Ripoarisch| [[::FilePermissionsRu/ksh|Ripoarisch]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/mr | • {{#if: UbuntuHelp:FilePermissionsRu|मराठी| [[::FilePermissionsRu/mr|मराठी]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/ms | • {{#if: UbuntuHelp:FilePermissionsRu|Bahasa Melayu| [[::FilePermissionsRu/ms|Bahasa Melayu]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/nl | • {{#if: UbuntuHelp:FilePermissionsRu|Nederlands| [[::FilePermissionsRu/nl|Nederlands]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/no | • {{#if: UbuntuHelp:FilePermissionsRu|norsk| [[::FilePermissionsRu/no|norsk]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/oc | • {{#if: UbuntuHelp:FilePermissionsRu|occitan| [[::FilePermissionsRu/oc|occitan]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/pl | • {{#if: UbuntuHelp:FilePermissionsRu|polski| [[::FilePermissionsRu/pl|polski]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/pt | • {{#if: UbuntuHelp:FilePermissionsRu|português| [[::FilePermissionsRu/pt|português]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/ro | • {{#if: UbuntuHelp:FilePermissionsRu|română| [[::FilePermissionsRu/ro|română]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/ru | • {{#if: UbuntuHelp:FilePermissionsRu|русский| [[::FilePermissionsRu/ru|русский]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/si | • {{#if: UbuntuHelp:FilePermissionsRu|සිංහල| [[::FilePermissionsRu/si|සිංහල]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/sq | • {{#if: UbuntuHelp:FilePermissionsRu|shqip| [[::FilePermissionsRu/sq|shqip]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/sr | • {{#if: UbuntuHelp:FilePermissionsRu|српски / srpski| [[::FilePermissionsRu/sr|српски / srpski]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/sv | • {{#if: UbuntuHelp:FilePermissionsRu|svenska| [[::FilePermissionsRu/sv|svenska]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/th | • {{#if: UbuntuHelp:FilePermissionsRu|ไทย| [[::FilePermissionsRu/th|ไทย]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/tr | • {{#if: UbuntuHelp:FilePermissionsRu|Türkçe| [[::FilePermissionsRu/tr|Türkçe]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/vi | • {{#if: UbuntuHelp:FilePermissionsRu|Tiếng Việt| [[::FilePermissionsRu/vi|Tiếng Việt]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/yue | • {{#if: UbuntuHelp:FilePermissionsRu|粵語| [[::FilePermissionsRu/yue|粵語]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/zh | • {{#if: UbuntuHelp:FilePermissionsRu|中文| [[::FilePermissionsRu/zh|中文]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/zh-hans | • {{#if: UbuntuHelp:FilePermissionsRu|中文(简体)| [[::FilePermissionsRu/zh-hans|中文(简体)]]}}|}} {{#ifexist: {{#if: UbuntuHelp:FilePermissionsRu | UbuntuHelp:FilePermissionsRu | {{#if: | :}}FilePermissionsRu}}/zh-hant | • {{#if: UbuntuHelp:FilePermissionsRu|中文(繁體)| [[::FilePermissionsRu/zh-hant|中文(繁體)]]}}|}} |
{{#ifeq:UbuntuHelp:FilePermissionsRu|:FilePermissionsRu|请不要直接编辑翻译本页,本页将定期与来源同步。}} |
{{#ifexist: :FilePermissionsRu/zh | | {{#ifexist: FilePermissionsRu/zh | | {{#ifeq: {{#titleparts:FilePermissionsRu|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:FilePermissionsRu|1|-1|}} | zh | | }}
Права доступа в системе Linux
Поскольку Linux (да и UNIX вообще) - многопользовательская OS, в ней существует система прав доступа к файлам, служащая для защиты файлов каждого пользователя от влияния других пользователей системы. Права доступа подразделяются на три типа:
- чтение (read)
- запись (write)
- выполнение (execute)
Разрешение на чтение позволяет пользователю читать содержимое файлов, а в случае каталогов - просматривать перечень имен файлов в каталоге (используя, например, команду ls). Разрешение на запись позволяет пользователю писать в файл, изменять его или удалять. Для каталогов это дает право cоздавать в каталоге новые файлы и каталоги, или удалять файлы в этом каталоге. Наконец, разрешение на выполнение позволяет пользователю выполнять файлы (как бинарные программы, так и командные файлы). Если на файле стоит атрибут Execute, то независимо от его расширения он считается программой, которую можно запустить. (Вот почему в *nix не принято ставить исполняемым файлам расширения по типу DOS'овских *.com, *.exe, *.bat. Вообще в Unix/Linux нет такого жесткого понятия расширение файла, как в Dos/Windows, и система сама определяет тип файлов независимо от их расширения, но это - уже другая история...). Так же атрибут выполнения может стоять у shell-скриптов, CGI-скриптов, и у всего, что можно хоть как-то запустить. Разрешение на выполнение применительно к каталогам означает возможность выполнять команды вроде cd. Эти типы прав доступа могут быть предоставлены для трех классов пользователей:
- владельцы - у каждого файла в Linux'e есть один владелец.
- группы - с каждым файлом связана группа пользователей этого файла.
- остальные пользователи.
Владельцем файла становится юзер, который создал этот файл. Короче говоря, для файла все юзеры делятся на 3 типа: хозяин, или владелец, юзеры, состоящие в одной группе с владельцем, и все остальные юзеры. Для каждого типа - свои права. Учтите, что директории и все системные устройства в UNIX являются обычными файлами. Тот же самый /dev/fd0 - это не сам Floppy disk, а всего лишь файл, связанный с флопповодом. Поэтому, если root запретил юзеру доступ к этому файлу, тот не сможет использовать флопповод (так же обстоят дела с модемами, хардами и т.п.). Владельцем всех системных файлов является root. Он же имеет право забирать файлы у одного юзера и передавать их другому (менять владельца).
Команда chmod
Изменить права доступа к файлу может либо его владелец, либо сам root. Делается это командой chmod. Существует две формы представления прав доступа: символьная и цифровая.
Символьная форма прав доступа
Если войти в любой каталог, где есть файлы, и набрать ls -l, то появится список всех файлов в этом каталоге и права доступа в символьной форме. Строка прав доступа состоит из 10 символов. Первый символ указывает на тип файла: d - директория, - - обычный файл. Три последующих - права доступа владельца к этому файлу. Если первый символ из этих трех - r, владелец имеет право читать этот файл, а если -, то не имеет. Следующие 2 символа - w - писать и x - запускать. Если вместо них стоит -, значит, владелец этого права не имеет. Еще 3 символа - права доступа группы, еще три - права всех остальных пользователей.
Примеры:
drwxrwxrwx
- директория, к которой все имеют любые права доступа.
-rwxr--r--
- обычный файл, владелец может делать все, а остальные - только читать.
-r--------
- обычный файл, который владелец может только читать, а остальные пользователи не видят.
Важно заметить, что права доступа, которые имеет файл, зависят также от прав доступа к каталогу, в котором этот файл находится. Например, даже если файл имеет -rwxrwxrwx
, другие пользователи не смогут до него добраться, если у них не будет прав на чтение и выполнение каталога, в котором находится файл. Например, если юзер захочет ограничить доступ ко всем своим файлам, он может просто изменить права доступа своего домашнего каталога /home/user на drwx------
. Таким образом, никто другой не будет иметь доступ в его каталог, а следовательно посторонним будут недоступны и все файлы. Так что, пользователь может не заботиться об индивидуальной защите своих файлов. Другими словами, чтобы иметь доступ к файлу, вы должны иметь доступ ко всем каталогам, лежащим на пути от корня к этому файлу, а также разрешение на доступ собственно к этому файлу. Обычно пользователи UNIX весьма открыты всеми своими файлами. По умолчанию файлам устанавливается защита -rw-r--r--
, которая позволяет другим пользователям читать файлы, но ни коим образом их не менять. Каталогам обычно устанавливаются права доступа drwxr-xr-x
, что позволяет другим пользователям ходить с правами экскурсантов по вашим каталогам, но ничего в них не трогать и не записывать.
Но многие пользователи хотят держать других подальше от своих файлов. Установив права доступа файла -rw-------
, вы никому не покажете этот файл и не дадите записать в него. Также хорошо закрывает файлы защита соответствующего каталога drwx------
.
С правами доступа в символьной форме chmod работает так:
chmod {a,u,g,o}{+,-}{r,w,x} <filenames>
Кратко, вы выбираете из all (все), user (пользователь), group (группа) или other (другие). Далее указываете, либо вы добавляете права (+), либо лишаете прав (-). И наконец, вы указываете один или несколько режимов: read, write или execute.
Числовая форма прав доступа
Теперь права доступа в числовой форме. Для некоторых эта форма может показаться более простой. Надо запомнить только следующее:
- 400 - владелец имеет право на чтение
- 200 - владелец имеет право на запись
- 100 - владелец имеет право на выполнение
- 40 - группа имеет право на чтение
- 20 - группа имеет право на запись
- 10 - группа имеет право на выполнение
- 4 - остальные имеют право на чтение
- 2 - остальные имеют право на запись
- 1 - остальные имеют право на выполнение
Теперь осталось только просуммировать числа, соответствующие тем правам доступа, которые мы хотим поставить файлу.
Примеры
Символьная форма
chmod a+r stuff
Дает всем пользователям право читать файл stuff.
chmod +r stuff
То же самое, что и ранее (a - по умолчанию).
chmod og-x stuff
Лишает права на выполнение всех, кроме владельца.
chmod u+rwx stuff
Разрешает владельцу все (read, write и execute).
chmod o-rwx stuff
Запрещает все (read, write и execute) пользователям категории другие (other).
Числовая форма
400+200+100+40+4=744
chmod 744 stuff
владелец может делать все, а остальные - только читать. 400+40+4=444
chmod 444 stuff
все имеют право только на чтение. 400+100+10+1=611
chmod 611 stuff
владелец может читать и выполнять, остальные - только выполнять. 400+200+100+40+10+4+1=755
chmod 755 script
Классическая команда. Скрипт - это исполняемый файл, и все должны иметь к нему доступ на чтение и выполнение. Только владелец этого файла может его изменять или удалять.
Команда chown
Изменение владельца файла осуществляется командой chown, например:
sudo chown <имя нового владельца> <имя файла>
Для передачи каталога надо вводить:
sudo chown -R <имя нового владельца> <имя каталога>
Команда chgroup
Изменение группы, которой принадлежит файл.
sudo chown <название новой группы> <имя файла>
Для передачи каталога надо вводить:
sudo chown -R <название новой группы> <имя каталога>