- •Файловая система unix
- •Файлы каталогов
- •Организация файловой системы
- •/Usr Данный каталог имеет несколько подкаталогов, таких как adm, bin, etc и include. Например. /usr/include содержит файлы заголовков для компилятора с.
- •Работа с каталогами
- •Создание и удаление каталогов: mkdir и rmdir
- •Права доступа к файлам и каталогам
- •Ls testdir отобразит результат
Права доступа к файлам и каталогам
Ранее в настоящей главе вы видели, что команда 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).