Типы файлов Linux
Помните, что в Linux любой объект интерпретируется как файл. Файлы Linux делятся на семь типов, перечисленных в табл. 9.1.
Таблица 9.1. Типы файлов
Тип файла |
Обычный файл |
Каталог |
Ссылка |
Символьное устройство |
Сокет |
Именованный канал |
Блочное устройство |
Признак типа выводится в самом начале записи в списке файлов:
# ls -l /dev/initctl prw------- 1 root root 0 Jan 12 00:00 /dev/initctl # ls -l /tmp/.ICE-unix/551 srwx------ 1 carla carla 0 Jan 12 09:00 /tmp/.ICE-unix/551
Тип файлов может указываться в командной строке find:
# find / -type p # find / -type s
Если поиск занимает слишком много времени, работу команды можно прервать клавишами Ctrl+C.
Атрибуты файлов
Также стоит обратить внимание на атрибуты файла — например, сценария sortusers:
# ls -l sortusers -rwxr-xr-x 1 meredydd programmers 3783 Jan 7 13:29 sortusers
Строка -rwxr-xr-x 1 meredydd programmers сообщает программисту много полезных сведений:
- первый символ — является признаком обычного файла. Этот атрибут не может изменяться пользователем. По этому признаку Linux определяет тип файла, поэтому с точки зрения системы расширение является лишним. Расширения нужны только для пользователей и приложений;
- подстрока rwx задает разрешения владельца файла;
- первая подстрока r-х задает разрешения владельца группы;
- вторая подстрока r-х задает разрешения для «всего мира», то есть для каждого, кто имеет доступ к файлу;
- 1 — количество жестких ссылок на файл. У каждого файла имеется как минимум одна ссылка из родительского каталога;
- в подстроке meredydd programmers содержится владелец файла и группа, которой принадлежит файл.
Разрешения и права владения могут изменяться командами chmod, chgrp и chown; команда chmod изменяет разрешения, а команды chown и chgrp меняют права владения. Запись rwx на первый взгляд выглядит странно, но в действительности это мнемоника: rwx=Read, Write, eXecute. В этом формате задаются разрешения для владельца, группы и всех остальных.
Таким образом, в примере sortusers пользователю meredydd разрешается чтение, запись и исполнение файла. Члены группы и прочие могут только читать и исполнять файл. Хотя отредактировать файл может только сам пользователь meredydd, ничто не мешает членам группы и другим пользователям скопировать его содержимое.
Файл является сценарием командного процессора, для него приходится задавать как права чтения, так и права исполнения, потому что командному процессору требуется прочитать файл. Двоичные файлы читаются непосредственно ядром без участия командного процессора, поэтому для них право чтения не обязательно.