Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПОКС Unix.docx
Скачиваний:
6
Добавлен:
11.07.2019
Размер:
44.25 Кб
Скачать

Права доступа к файлам и каталогам

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

В UNIX каждому пользователю соответствует уникальный идентификатор регистрации пользователя UTD. Кроме того, многие пользователи собраны вместе и ассоциированы вгруппы. Пользователь может принадлежать к одной или нескольким таким группам. Однако пользователь принадлежит только к одной первичной группе. Все остальные группы, к которым принадлежит пользователь, называются вторичными группами. Идентификатор пользователя определяется в файле /etc/passwd, а группы пользователя определяются в файле /nsr/group. Права доступа к файлам и каталогам в UNIX базируются на пользователе и на группе.

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

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

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

Права доступа для всех остальных: определяют операции, которые может выполнять любой человек (не являющийся владельцем и не принадлежащий к группе владельца).

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

Вот пример файла под названием testHle в текущем каталоге, созданного пользователем guhas, который входит в группу под названием staff. Права доступа к файлу настроены так, что только пользователь guhas может читать, модифицировать или удалять данный файл. Пользователи, принадлежащие к этой группе, могут читать его, а извне группы никто не может получить доступ к файлу. Выполнение следующей команды из текущего каталога

ls -al testfile отобразит разрешения файла testfile:

рrw-rр 1 guhas staff 2031 Nov 04 06:14 testfile

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

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

Ls testdir отобразит результат

testfile

Однако если вы захотите увидеть содержимое файла testfile с помощью команды:

cat testdir/testfile то получите следующее сообщение об ошибке:

cat: testdir/testfile permission denied (доступ запрещен)

Для выполнения любой операции над testfile в testdir у вас должно быть право на исполнение в testdir.

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

Владелец файла р пользователь, который создает файл. Группа, к которой принадлежит файл, определяется той системой UNIX, в которой вы работаете. В некоторых случаях группа определяется текущим каталогом. В других случаях вы можете изменить одну из вторичных групп (используя команду newgrp) и затем создать файл или каталог, принадлежащие данной группе.

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

Например, предположим, что у нас есть подкаталог testdir в /u/guhas, а в нем есть файл, называющийся testfile. Предположим также, что для подкаталога testdir установлен доступ с разрешением 710 (то есть разрешением на выполнение для группы). В таком случае член группы, выполнив команду Is для testdir, получит следующий результат:

ls -l testdir

testdir unreadable (testdir нечитаем)

total 0

В то же время, если кто-то, осведомленный о testfile, выполнит следующую команду:

ls -l testdir/testfile то получит

рrw-r-r- I guhas staff 23 Jul 8 01:48 testdir/testfile

и будет знать всю информацию о файле testfile.

В UNIX существует специальный пользователь, который имеет всеобъемлющее разрешение читать, писать

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]