17.1. Проверка прав доступа к файлу

We use cookies. Read the Privacy and Cookie Policy

17.1. Проверка прав доступа к файлу

Основные форматы команды test:

test условие

или

[ условие ]

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

Таблица 17.1. Проверка прав доступа к файлу

-d Каталог -f Обычный файл -L Символическая связь -r Файл для чтения -s Файл имеет ненулевой размер, он не пуст -w Файл для записей -u Файл имеет установленный бит suid -x Исполняемый файл

Чтобы проверить, установлено ли право записи для файла scores.txt, применяются оба метода проверки. При осуществлении проверки используется код завершения последней команды. Не забывайте о том, что возвращаемое нулевое значение свидетельствует о том, что условие выполняется, любое другое значение говорит о наличии ошибки.

$ ls -l scores.txt

-rw?r—г -l dave admin 0 May 15 11:29 scores.txt

$ [ -w scores.txt ]

$ echo $?

0

$ test -w scores.txt

$ echo $?

0

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

$ [ -х scores.txt ]

$ echo $?

1

Нет, не является, что и следовало ожидать после изучения списка прав доступа для файла scores.txt.

В следующем примере проверяется существование каталога appsbin.

drwxr?xr?x 2 dave admin 1024 May 15 15:53 appsbin

$ [ -d appsbin ]

$ echo $?

0

Ответ утвердительный, каталог appsbin присутствует. Чтобы проверить, установлен ли бит suid, примените:

-rwsr?x--- 1 root root 28 Apr 30 13:12 xab

$ [ -u xab ]

$ echo $?

0

Из этого примера следует, что бит suid установлен.