среда, 16 июня 2010 г.

Права доступа к файлам в ОС Linux




Эта статья дает основные понятия, связанными с правами доступа на файлы и директории в ОС Linux. Правда доступа в данной ОС играют куда более существенную роль, нежели чем в Windows. К примеру именно правами дается возможность на запуск файла. Так если в Windows файлы которые запускаются имеют расширение .exe, .bat и т.д., то в Linux-е исполняемые файлы вообще могут быть без расширений или иметь совсем уж нестандартное расширение. А вот можно ли его будет запустить или нет - за это отвечают как раз аттрибуты файла.

Итак, давайте войдем в какую-нибудь директорию и там в консоли дадим команду ls -l К примеру мы там увидим:

drwxr-xr-x 2 root root 4096 Sep 12 14:58 testdir

-rwxr-x--x 1 root root 0 Sep 11 22:25 testfile


Из этого вывода команды ls нас интересуют первые 10 символов. Первый символ определяет тип файла, остальне - задают правда доступа. К примеру в нашем выводе d - определяет признак директории tesdir и - признак файла testfile.

Ниже я приведу все возможные признаки:

обычный файл -

директория d

символическая ссылка l

block device b

character device c

socket device s

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

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

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

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

Числовая система

Правда на доступ задаются при помощи трех или четырех цифр.

Пример: Для задания прав доступа к нашему testfile, я использовал команду: chmod 751 testfile.

В этом случае в восьмеричной системе исчисления мы имеем следующие цифры:

чтение(read) 4 запись(write) 2 запуск(execute) 1

Если же мы хотим задать права на чтение(read) и запись(write), мы вычисляем 4+2=6 и используем цифру 6 для установки флага чтения(read) и записи(write). Для задания атрибута чтение и исполнение мы складываем 4+1=5, для чтения, записи и исполнения мы получаем 4+2+1=7 и так далее. Первая цифра позволяет нам устанавливать права для владельца, вторая - для группы в котрую входит владелец, третья - для всех остальных. В нашем примере -rwxr-x--x - это 751 и drwxr-xr-x - это 755 в восьмиричной системе.

Буквенная система

Используем операторы + и - для добавления и удаления прав. Эта система символьная и сльно проще для понимания. В этой системе пользователь, группа и другие определяются как u, g, o.

Пример: Команда chmod ugo+x,u+rw testfile выставляет привилегии запуска для пользователя, группы и других и выставляет привелегии чтения и записи для пользователя.

Если же Вы к примеру хотите убрать какую-либо привелегию, то Вам вместо оператора + нужно использовать оператор -. К примеру, если Вы хотите убрать у группы права чтения и записи, то Вам нужно дать команду chmod g-rw testfile.


Комментариев нет:

Отправить комментарий