Есть чтение (4), запись (2) и исполнение (1) Что значит исполнение? Объясните простыми словами и примером.
Ответ
для файла это означает, что его можно выполнить, обратившись к нему:
либо по имени, поместив его в один из каталогов, перечисленных в переменной окружения PATH (или дополнив значение этой переменной путём к текущему местоположению этого файла)
либо указав полный путь к файлу
понятно, что выполнить файл можно, только если он:
либо является скриптом и в первой строке у него указан корректный «shebang»
либо является программой (скомпилированной под набор инструкций вашего процессора) и операционной системе «известно», как его загрузить в память и в какую точку передать управление
для каталога это означает, что можно прочитать не только имена файлов/каталогов, находящихся внутри данного каталога, но и их атрибуты (принадлежность, права доступа, время создания/модификации). пример:
создаём тестовый каталог, в нём создаём файл и ещё один каталог:
$ mkdir test
$ touch test/file
$ mkdir test/dir
сейчас мы видим атрибуты содержимого каталога test
$ ls -l test
total 4
drwxr-xr-x 2 user user 4096 Apr 1 23:39 dir
-rw-r--r-- 1 user user 0 Apr 1 23:38 file
а если уберём бит исполнимости с каталога test
$ chmod -x test
то увидим только имена содержащихся в нём файлов/каталогов:
$ ls -l test
ls: cannot access test/dir: Permission denied
ls: cannot access test/file: Permission denied
total 0
d????????? ? ? ? ? ? dir
-????????? ? ? ? ? ? file
и не сможем «заглянуть глубже», например, посмотреть содержимое каталога test/dir
$ ls -l test/dir
ls: cannot access test/dir: Permission denied
Комментариев нет:
Отправить комментарий