четверг, 1 января 2009 г.

сhmod - права на доступ

взято с http://linuxland.itam.nsc.ru

полная ссылка http://linuxland.itam.nsc.ru/book/unix09/chmod/index.html

==================

Права доступа могут быть изменены только владельцем файла или суперпользователем(superuser) - администратором системы. Для этого используется команда chmod.

chmod - изменение атрибутов защиты файла

синтаксис

chmode mode file...

описание

Команда изменяет атрибуты защиты файла file. Атрибуты защиты, обозначимые mode, могут быть заданны в числовом или символическом виде.

В символическом виде атрибуты задаются в формате

[who]+ | - | = [permission]

В операционной системе Unix существуют три базовых класса доступа к файлу:

User accsess(u) для владельца - пользователя файла

Group accsess(g) для членов группы, являющихся владельцем файла

Other accsess(o) для остальных пользователей (кроме супер- пользователя)

,в каждом из которых установленны соответствующие права доступа

Первое поле, обозначеное как who, может содержать один или несколько следующих символов:

a установка атрибутов защиты для всех категорий пользователей;

g установка атрибутов защиты для групп пользователей;

o установка для прочих процессов (эффективные идентификаторы которых не совпадают с пользовательскими);

u установка прав доступа только для владельца.

Допустимые операции:

+ добавление прав доступа;

- отмена прав доступа;

= определение перечисленных прав и отмена всех прочих для данного who.

Поле, обозначенное как permission, может быть комбинацией следущих символов:

x делает файл выполнимым(разрешение выполнения);

r разрешение чтения;

w разрешение записи;

s установка пользовательского или группового идентификатора.

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

4000 установка ID пользователя при выполнениии (S_ISUID);

2000 установка ID группы при выполнениии (S_ISGID);

1000 зависит от реализации;

0400 право владельца на чтение (S_IRUSR);

0200 право владельца на запись (S_IWUSR);

0100 право владельца на выполнение (S_IXUSR);

0040 право группы на чтение (S_IRGRP);

0020 право группы на запись (S_IWGRP);

0010 право группы на выполнение (S_IXGRP);

0004 право прочих процессов на чтение (S_IROTH);

0002 право прочих процессов на запись (S_IWOTH);

0001 право прочих процессов на выполнение (S_IXOTH);

0000 нет доступа.

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

Примеры использования команды chmod
$ chmod a+w text Предоставить право на запись для всех пользователей для файла text
$ chmod go=r text Установить право на чтение для всех пользователей,за исключением владельца
$ chmod g+x-w run Добавить для группы право на выполнение файла run и снять право на запись
$ chmod u+w,og+r text1 text2 Добавить право записи для владельца, право на чтение для группы и остальных пользователей, отключить право на записьвсех пользователей, исключая владельца
$ chmod 754 * Устанавить для владельца права на чтение, запись и выполнение, для группы на чтение и выполнение и для остальных пользователей только на чтение, всех файлов в текущем каталоге
число определяется следущим образом: нужно предствить права доступа в двоичном виде(0 - отсутствие соответствуещего права, 1 - его наличие) и каждую триаду, соответсчвующую класу доступа, в свою очередь преобразовать в десятичное число.

7=111(rwx) 5=101(r-x) 4=100(r--)

$ chmod rw-rw-rw junk Так нельзя! надо использовать:

$ chmod a=rw junk или

$ chmod 666 junk

$ chmod a-w . закрыть текущий каталог по записи для всех пользователей, включая себя
$ chmod o-r+x private сделать для всех пользователей, кроме себя текущий каталог private невидимым.
chown - смена собственника файла

синтаксис

chown owner file...

описание

Команда chown изменяет владельца файла file на owner. Поле, обозначенное как owner, может быть десятичным идентификатором пользователя или именем пользователя.

Примеры использования команды chown
$ ls -l

-rwxr-xr-x 1 nick asu 512 Nov 13 for_alex

$ chown alex for_alex

$ ls -l

-rwxr-xr-x 1 alex asu 512 Nov 13 for_alex

сменить владельца файла for_alex с nick, на alex. Теперь права на запись в этот файл для пользователя nick утеряны.
$ ls -l

-rwxrw-rw- 1 lex group 40033 Dec 1 x.tar
-rwx------ 1 ldm asu 55 Sep 4 run
-rw-r--r-- 2 alex asu 512 Jul 20 alex.my
-rw-rw-rw- 1 nick asu 690 Nov 13 fors.nick

$ whoami

root

$ chown * root

$ ls -l

-rwxrw-rw- 1 root group 40033 Dec 1 x.tar
-rwx------ 1 root asu 55 Sep 4 run
-rw-r--r-- 2 root asu 512 Jul 20 alex.my
-rw-rw-rw- 1 root asu 690 Nov 13 fors.nick

Суперпользователь присвоил себе все файлы текущего каталога. (Вообще-то такие случаи редки )
chgrp - смена группы файла

синтаксис

chgrp group file...

описание

Команда chgrp изменяет группу файла file на group. Поле, обозначенное как group, может быть десятичным идентификатором группы или именем группы. Для успешного выполнения этой команды нужно быть членом группы group.

Примеры использования команды chgrp
$ chgrp staff * Установить гpуппу staff в качестве владельцев всех файлов текущего каталога

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

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