UNIX: различия между версиями
Содержимое удалено Содержимое добавлено
Urod (обсуждение | вклад) |
Urod (обсуждение | вклад) м дескриптор -> индексный дескриптор |
||
Строка 38:
Кроме того, каждый каталог содержит ссылку на себя (обозначается точкой (.)) и ссылку на тот каталог, в котором он находится (обозначается двумя точками (..))
Наконец, <u>совсем строго говоря</u>, каталог содержит ссылки не на файлы, а на ''индексные дескрипторы'' файлов.
Важно понимать, что ''индексный дескриптор не знает, откуда на него ссылаются''. Поэтому в UNIX, имея файл, невозможно определить, в каких ещё каталогах есть ссылки на него. (То есть можно, но лишь просмотрев все файлы, которые есть на диске.)
В системе Unix, как правило, нет мусорного ящика. Если файл удалён, его уже не восстановишь.
Строка 56:
* '''/home''' - каталог, содержащий пользовательские каталоги. У каждого пользователя есть свой личный каталог. Каталог пользователя vasya обычно называется '''/home/vasya'''. Иногда этот каталог называется не '''/home''', а '''/u''', а в старых версиях UNIX - '''/usr'''. В своём личном каталоге многие пользователи создают свои каталоги и деревья каталогов.
* '''/lib''' - библиотечные файлы
* '''/lost+found''' - файлы, которые из-за сбоя файловой системы стали «сиротами»: индексный дескриптор цел, но файла нет ни в одном каталоге. Получается, что система не знает имени файла и где он находился. Программы починки файловой системы помещает эти файлы сюда.
* '''/mnt''' - каталог для привязывания физических файловых систем к корневой, о чём подробнее ниже. Если в компьютере больше одного диска, все диски, кроме главного, являются подкаталогами в этом каталоге.
* '''/sbin''' - исполняемые системные файлы (System V). В других UNIX эти файлы находятся в '''/etc'''. В некоторых версиях System V они находятся не только в '''/sbin''', но и в '''/usr/sbin'''.
Строка 96:
=== Символические ссылки ===
Существует специальный тип файлов, называемый символическими ссылками. Обращение к символической ссылке обратится к файлу, но символические ссылки неравноправны с обычными.
Длина символической ссылки равна длине имени файла. Команда ls в длинном формате пишет имя, на которое символическая ссылка ссылается.
Строка 148:
Права доступа к каталогам имеют нетривиальный смысл:
* право на чтение ('''r''') - право получить имена, и только имена, файлов.
* право на исполнение ('''x''') - право доступа к индексным дескрипторам, а также право делать каталог текущим (команда '''cd'''). Следовательно,
** для выдачи всей информации о файле в текущем каталоге (команда '''ls -l''', например) это право необходимо и достаточно
** для любых действий с файлом (чтение, запись, удаление, запуск, получение информации), это право необходимо. Если каталог закрыт для исполнения, его файлы недоступны никак. Можно получить их имена, и всё.
** для любых операций с файлами не в текущем каталоге нужно право на исполнение во всех промежуточных каталогах на пути к этому файлу, поскольку для того, чтобы идти по пути, нужно обращаться к индексным дескрипторам промежуточных каталогов. То есть, чтобы выполнить ls Foo/Bar/Baz, нужны права на исполнение для каталогов Foo и Foo/Bar и на чтение для каталога Baz.
* право на запись('''w''') - право создавать и стирать файлы в каталоге. Права доступа к файлу для его стирания не нужны! Таким образом, право на запись в каталог - очень серьёзное право.
|