LINUX.ORG.RU
ФорумAdmin

Бит доступа 'r' для директории.


0

0

Бит 'r' для директории, позволяет просматривать ее содержимое. В таком случае почему команда ls /tmp/dir2 выдает мне результат:

ls: /tmp/dir2/file1: Permission denied
dir1

Пользователь, которым я просматриваю папку, имеет только право на чтение. Что этот Permission denied вобще означает? Причем это только для файла, а директорию он показывает без ошибки.

потому что для просмотра директории на нее должен быть установлен бит 'x'
а permission denied - это типа доступ запрещен =))

anonymous
()

/bin/ls должен просто напечатать имя файла.

а ls -- скорее всего, алиас для ls --color, а чтобы покрасить файл, ему нужно что-то о нем узнать кроме того, что он вообще есть -- а для этого, для обращения к самому /tmp/dir2/file1, нужен бит x на директорию.

Короче:

r -- получение списка файлов _и только_. x -- обращение к файлу при условии, что известно его имя. rx -- readonly в обычном смысле.

lodin ★★★★
()
Ответ на: комментарий от anonymous

Капец. :) Я в курсе как переводится permission denied, я спрашиваю что он означает в данном контексте. Это первое.

Второе. Если бы вы хоть немного включили логику, то поняли бы, что это не так. Если для того, чтобы просмотреть директорию нужен бы был бит 'x', то как бы тогда я узнал о директории dir1 и файле file1 в принципе?

Бит 'x' нужен для прохождения в глубь дерева директорий. Что означает, что просмотреть содержимое файловой системы, находящееся внутри директории dir2, без бита 'x' я не смогу.

Harmont
() автор топика
Ответ на: комментарий от lodin

Это было ананимусу. А lodin оказался прав на все 100. Все дело в алиасе. Он что-то там выудить желает из файла, чтобы разрисовать его должным образом и естественно не может этого сделать. Поэтому и Permission denied. Дайте мне бубен.

Harmont
() автор топика
Ответ на: комментарий от Harmont

да какой тебе бубен =))
то что ты узнал что есть какие-то файлы и какая-то папка что-ли??

не размера, ни типа, ни file - ничего - и это ты называешь _ПРОЧИТАТЬ_ДИРЕКТОРИЮ_ ? =))

нужен 'x'

anonymous
()
Ответ на: комментарий от anonymous

Бит x означает ПОИСК в каталоге.
Бит r - означает ЧТЕНИЕ из каталога.
Для вывода списка файлов из каталога (т.е. ПОИСКА) - нужны биты r и x.
Если знаешь имя файла (полный путь к нему), для для его чтения достаточно бита r, потому что поиск (бит x) здесь не нужен.
Именно так и делаются "пустые" каталоги (без бита x), при заходе в которые - пусто, однако есть возможность качать файлы из них, если известно имя.

anonymous
()
Ответ на: комментарий от anonymous

> Если знаешь имя файла (полный путь к нему), для для его чтения достаточно бита r, потому что поиск (бит x) здесь не нужен.

> Именно так и делаются "пустые" каталоги (без бита x), при заходе в которые - пусто, однако есть возможность качать файлы из них, если известно имя.

Все наоборот. Прочитай внимательнее тред. Если на каталоге не будет бита x, фиг ты из него какой файл прочитаешь/скачаешь.

bigbit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.