Рейтинг:0

Почему «Отказано в доступе» для «ls» и «touch», когда у папки есть разрешения «r» и «w» для всех?

флаг ec

я прочел rm: невозможно удалить каталог/: Отказано в доступе, отмечены ответы на вопрос, где не были предоставлены права доступа к каталогу. бит ограниченного каталога случай, поэтому я решил изучить глубже и наткнулся на следующее, для которого я не смог найти ответ с помощью веб-поиска:

коснитесь /медиа/диск/1/2
сенсорный: нельзя трогать '/media/drive/1/2': разрешение отклонено
лс /медиа/диск/1
ls: невозможно получить доступ к '/media/drive/1/1': разрешение отклонено

sudo ls -la /media/диск/1
всего 0
drw-rw-rw- 2 алекс алекс 60 5 окт 08:36 .
drwxrwxrwx 4 root root 80 5 окт 08:36 ..
-rw-rw-r-- 1 алекс алекс 0 5 окт 08:36 1

КСТАТИ: почему всего 0?

Информационная страница (info '(coreutils) Права доступа к файлам'):

  1. разрешение на чтение файла. Для каталогов это означает разрешение на просмотр содержимого каталога.
  2. разрешение на запись (изменение) файла. Для каталогов это означает разрешение на создание и удаление файлов в каталоге.
  3. разрешение на выполнение файла (запуск его как программы). За каталоги, это означает разрешение на доступ к файлам в каталог.

Поиск в Интернете в основном говорит то же самое. Папка 1 имеет как чтение, так и запись, почему операции не выполняются? За Икс разрешение на доступ какие доступ значит сюда?

Martian2020 avatar
флаг ec
@ mook765, он отвечает за фактическое поведение, но не за то, почему нужен `x`, несмотря на то, что документы говорят об обратном, и комментарии говорят мне, что в более ранних версиях UNIX `x` был нужен для `cd`, а не `ls`.
Martian2020 avatar
флаг ec
@muru, см. комментарий к mook765
Martian2020 avatar
флаг ec
@muru, теперь мне кажется (Ubuntu 20) `x` избыточен, поскольку сам по себе не добавляет разрешения (для каталога).
muru avatar
флаг us
@Martian2020 Так и есть. Даже в Ubuntu 20.04. `x` нужно фактически войти в каталог и получить доступ к чему-либо в нем. Ваша команда `ls`, по-видимому, является псевдонимом, который на самом деле запускает `ls -l`, который пытается проверить каждую запись в каталоге, что не может работать без разрешения `x`, если вы не являетесь пользователем root.
Martian2020 avatar
флаг ec
@muru, может быть, я не ясно выразился. Позвольте мне перефразировать: есть ли варианты использования -x +r/w? Или наоборот +x -rw?
muru avatar
флаг us
`x +r/w`, не имеет особого практического применения. `+x, -rw` довольно часто используется, когда вы хотите предоставить пользователю доступ к определенному файлу или подкаталогу, но в противном случае не можете видеть или изменять другие вещи в каталоге.
vanadium avatar
флаг cn
папка `1` не отображается как папка в вашем выводе ls. Наверное пора тщательно проверить файловую систему.
Martian2020 avatar
флаг ec
@муру, спасибо. Чтение о том, что содержит индексный дескриптор каталога (просто имя и указатель), также помогло, я бы хотел, чтобы страница info/man была немного более информативной о таких вещах.Одна проблема меня озадачивает: я пытался `mv` файл в папку с `+rw -x`, `perm отказал` - но у меня есть запись в каталог, система могла записать указатель inode файла вместе с именем в каталог. Любая причина, по которой это не работает? Вариант использования: вы можете поместить файл в каталог, но не сможете получить доступ/изменить его позже.
muru avatar
флаг us
Думайте о `mv foo bar/` как о `mv foo bar/foo` => без `x` на `bar`, к `bar/foo` нельзя получить доступ (даже если он в настоящее время не существует), и так далее. операция не может быть разрешена.
Martian2020 avatar
флаг ec
@muru, значит, зависит от реализации? Потому что, увидев `read`, система может проверить наличие уже существующих файлов с таким же именем.
muru avatar
флаг us
Нет, я не знаю ни одной реализации, которая позволила бы это. Конечно, вы можете проверить, существует ли файл, но вы все еще не можете получить доступ к пути `bar/foo` без `x` на bar.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.