-rw-rw-rw-файл действительно недоступен в drwxrwx — каталог?

Любой переписывает Ваш сценарий в: Perl, PHP или Python, поскольку они все предлагают API для FTP, еще взглянули на использование, ожидают. Вокруг существует несколько учебных руководств.

2
29.12.2013, 09:02
2 ответа

Да, файл в каталоге только доступен для пользователей, у которых есть выполнить разрешение на каталоге. Это похоже на драгоценности отъезда в разблокированной секции в заблокированном доме: драгоценности находятся под блокировкой.

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

Любой может создать символьные ссылки, которые, оказывается, указывают на файл, но это не позволяет им получать доступ к файлу. Символьные ссылки не обходят полномочия.

Если каталог является мировым исполняемым файлом в какой-то момент и существуют процессы, которые имеют файл или родительский каталог, открытый в то время, когда Вы ограничиваете полномочия на каталоге, то те процессы все еще имеют файл, открытый впоследствии. Однако, если они закроют его (или съедут к другому каталогу), то они не смогут вновь открыть его (или возвратить каталог в). Точно так же setuid или процесс setgid могут открыть файл или изменение в каталоге, затем отбросить его полномочия. Все это требует сотрудничества владельца файла или каталога.

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

4
27.01.2020, 21:57

Мои предположения:

  • Никто, но владелец и группа каталога не должны мочь ввести его в нормальные условия, учитывая маску разрешения drwxrwx---.
  • Пользователь, желающий к жесткой ссылке на Ваш файл, должен был бы предположить его inode сначала, и которого он будет использовать системный вызов "lstat" ("человек 2 lstat"), который нуждается в доступе для чтения и не работал бы в этом случае.
  • Предположение inode числа и использование некоторых системных вызовов для соединения с ним не работали бы также, AFAIK. Системный вызов для соединения с файлом является "ссылкой" ("человек 2 ссылки"), и это работает с путями, не с inode числами. Я предполагаю, что Вы могли перейти к более низкому уровню и попытке использовать syscalls, которые "связывают" себя использование, но для которого Вы должны были бы базироваться доступ. И если у Вас есть корневой доступ, вопрос спорен.

BTW, спасибо за вопрос. Это связано с одним из предметов, которые я изучаю в наше время :-)

1
27.01.2020, 21:57

Теги

Похожие вопросы