Помните, что в 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 сообщает программисту много полезных сведений:
Разрешения и права владения могут изменяться командами chmod, chgrp и chown; команда chmod изменяет разрешения, а команды chown и chgrp меняют права владения. Запись rwx на первый взгляд выглядит странно, но в действительности это мнемоника: rwx=Read, Write, eXecute. В этом формате задаются разрешения для владельца, группы и всех остальных.
Таким образом, в примере sortusers пользователю meredydd разрешается чтение, запись и исполнение файла. Члены группы и прочие могут только читать и исполнять файл. Хотя отредактировать файл может только сам пользователь meredydd, ничто не мешает членам группы и другим пользователям скопировать его содержимое.
Файл является сценарием командного процессора, для него приходится задавать как права чтения, так и права исполнения, потому что командному процессору требуется прочитать файл. Двоичные файлы читаются непосредственно ядром без участия командного процессора, поэтому для них право чтения не обязательно.