Установка прав доступа

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

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

 

Пример 6.9. Изменение прав доступа в восьмеричной нотации

 

$ ls -l text.c  
-rw-r--r-- 1 prof tania 175 Dec 13 21:24 text.c
$ chmod 660 text.c    
$ ls -l text.c    
-rw-rw---- 1 prof tania 175 Dec 13 21:24 text.c

 

Команда chmod 660 text.c установила права 660 на файл text.c.

Команда chmod позволяет также устанавливать права на доступ к файлу, ука- зывая их в символьной нотации. Для этого применяется следующая форма команды:

chmod класс изменение права файлы


Здесь класс — один из следующих:

r u — доступ владельца;

r g — доступ группы владельцев;

r o — доступ всех остальных;

r a — доступ всех групп пользователей. Аргумент изменение:

D + — разрешить (добавить);

r - — запретить (убрать);

D = — установить (переписать).

Аргумент права:

r r — чтение;

r w — запись;

r x — выполнение.

Предположим, что для файла text.c требуется удалить право на запись для группы и добавить право на чтение для остальных. Пример 6.10 демонстри- рует это.

 

Пример 6.10. Изменение прав доступа в символьной нотации

 

$ chmod g-w,o+r text.c

$ ls -l text.c

-rw-r--r-- 1 prof tania 175 Dec 13 21:24 text.c

 

Если используются операции разрешения + или запрета - прав на файл, то они не изменяют те биты прав доступа, которые не относятся к требуемому изменению.

Наоборот, использование операции назначения = стирает те права, которые были установлены ранее, и назначает новые. Так, например, установим на файл text.c права на чтение и запись для владельца и группы и запретим всем остальным какой-либо доступ к файлу (пример 6.11).

 

Пример 6.11. Установка прав доступа со сбросом предыдущих прав

 

$ chmod ug=rw,o= text.c

$ ls -l text.c

-rw-rw---- 1 prof tania 175 Dec 13 21:24 text.c


 

Аналогично командам chown и chgrp, команда chmod способна рекурсивно изменять права доступа к каталогам и всему их содержимому, если она вы- звана с опцией -R. Однако этой возможностью следует пользоваться с особой осторожностью, принимая во внимание концептуальные отличия прав на файлы от прав на каталоги — на файлы в большинстве случаев устанавлива- ются четные права (отсутствие прав на исполнение), а на каталоги наобо- рот — нечетные (без права на search каталоги не позволят обращаться к ме- таданным файлов внутри них).

Приведенная в примере 6.12 команда снимает права на запись для каталога

scores.

 

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

 

$ ls -lR scores scores:

total 1

drwxrwxr-x 2 prof users 80 Aug 24 16:20 rnd_tutorial scores/rnd_tutorial:

total 4

-rw-rw-r-- 1 prof users 1040 Aug 24 16:20 000.score

$ chmod -R g-w scores

$ ls -lR scores scores:

total 1

drwxr-xr-x 2 prof users 80 Aug 24 16:20 rnd_tutorial scores/rnd_tutorial:

total 4

-rw-r--r-- 1 prof users 1040 Aug 24 16:20 000.score

 

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

Рекурсивное изменение прав на каталог и его содержимое используют для дополнения или запрета доступа на чтение или запись. Часто права на ката- логи и на файлы устанавливаются отдельно командой find с модификатором

-exec chmod.

Например, в каталоге scores требуется установить для файлов права 644, не затрагивая при этом права на каталоги (пример 6.13).


 

Пример 6.13. Установка прав на выбранные командой find файлы

 

$ find scores -type f -exec chmod 644 {} \;

$ ls -lR scores scores:

итого 1

drwxr-xr-x 2 prof users 80 Авг 24 16:20 rnd_tutorial scores/rnd_tutorial:

итого 4

-rw-r--r-- 1 prof users 1040 Авг 24 16:20 000.score

 

GNU-версия команды chmod позволяет использовать опцию -v для получения подробной информации о файлах (пример 6.14), для которых изменяются права, и опцию -c для получения подробностей изменения прав.

 

Пример 6.14. Использование опции -v команды chmod

 

$ chmod -Rv g-w scores

права доступа `scores' изменены на 0755 (rwxr-xr-x)

права доступа `scores/rnd_tutorial' изменены на 0755 (rwxr-xr-x)

права доступа `scores/rnd_tutorial/000.score' изменены на 0644(rw-r--r--)

 

Однако опция -v выдает подробную информацию всегда, а -c только тогда, когда права действительно изменяются (пример 6.15).

 

Пример 6.15. Использование опции -c команды chmod

 

$ chmod -c g-w text.c

права доступа `text.c' изменены на 0640 (rw-r-----)

$ chmod -v 660 text.c

права доступа `text.c' изменены на 0660 (rw-rw----)

 








Дата добавления: 2015-06-12; просмотров: 725;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.011 сек.