Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Linux. Можно ли дать доступ к файлам из папки к которой нет доступа  (Прочитано 55597 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн c006781

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Добрый день уважаемые знатоки.
Я начал трогать Linux буквально месяц назад.
 
Можете подсказать как реализовать следующую задумку и вообще возможно ли это.
 
Имеется сервер с ubuntu, ssh, MySQL.
Имеется программа, которая подключается к серву и бд. Подключается она под обычным пользователем, у которого вход по ключу с паролем из 150 рандомных символов (скорей всего у пользователя не будет доступа к sudo и su).
 
Идея такая: программа обращается к БД, БД возвращает путь к файлу (виде текста) с которым нужно будет взаимодействовать. Этот  путь содержит папку, в которую пользователь не имеет вообще никакого доступа, а лучше даже и не видит.
 
Пусть путь будет примерно такой: .file/.id_(16 знаков)/files.txt
  • .file - доступ к изменению, чтению, открытию только у админов ,
  • .id_(16 знаков) - "16 знаков" - 16 значный id, сгенерированный в БД. - доступ к изменению только у админов, но чтение у всех
  • files.txt - файл который нужно скачать / открыть / редактировать. Причём есть шанс что скачка и просмотр будет многопользовательский
Смысл в том, что то если пользователя всё же ломанут, (так как программа и ключ будут в открытом доступе), то не могли бы шариться в .file, так как в ней будут ещё лежать всякие данные.
Но если это легальный доступ, то пользователь обращается к бд, бд даёт путь и он может спокойно скачать или отредактировать files.txt
 
Можете пояснить новичку возможно ли это сделать и если возможно, то как?

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3026
    • Просмотр профиля
Как я представляю, при таких условиях, если пользователя взломают, то от него просто вызовут эту программу
и она возвратит всё, что запросят. Я бы усложнил базу данных и пусть она возвращает то, что требуется,
без заходов пользователя непосредственно в каталоги.
Кроме того, если нет прав на чение верхнего каталога, то и в нижний не войти.
Пётр.

Оффлайн c006781

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Тоесть без доступа к верхнему нет возможности смотреть нижний. Просто я слышал, что архитектура файлов и папок в Linux не древовидгая. Думал есть какие-то способы сделать. Спасибо.
А через базу думаю не вариант. Ибо там передача больщих файлов и  надстройка обновления программы. По крайней мере идея была такая. Ещё раз спасибо.

Оффлайн AlexDem

  • Активист
  • *
  • Сообщений: 696
    • Просмотр профиля
А программа случайно не на PHP?
Если условие, что нужен именно файл (а не текст из него), то проще и логичнее создавать некий временный каталог пользователя на сервере, куда файл будет скопирован и при сохранении его он копируется обратно в изначальную папку. Некий аналог кэша.
Так как PHP работает на сервере, то у пользователя вообще не будет доступа в каталоги хранения файлов, но при этом он всегда может открыть и прочитать нужный файл (вернее его копию) и сохранить его либо локально, либо на сервере.
К тому же если предполагается много пользовательский доступ, это еще позволит и конфликта доступа избежать (но тут надо смотреть).

Оффлайн c006781

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Нет. У меня ++.
Про временный каталог я думал, но вопрос с отслеживанием докачки файла. Ибо если в тупую отправлять сообщения о конц загрузки, то может из-за обрыва, вылета, ещё чего нить не подать сигнал и файл останется в этом буфере. При многократной проблеме - можно сервер забить. Авточистка  файлов не вариант, так как при обрывистом соединении, файл, который грузят, возможно удалится. Та же проблема, если в течение времени посылать сиг лал о том что загрузка продолжается. Хотя последнее самое надежное...
Ладно. Понял. Подумаю в сторну создания новых пользователей с обычными паролями, дачи конкретному пользователю прав на чтение пути, скачки файла с него, и удалении пользователя при отключении соединения более чем день.

Оффлайн MooSE

  • Старожил
  • *
  • Сообщений: 1111
    • Просмотр профиля
А вам обязательно забирать файлик по SSH/SFTP? Или я вас не правильно понял? Можно ведь через веб. Есть подходящие модули для nginx, или можно на любом языке напрограммировать небольшой скрипт для процессинга одноразовых ссылок на реальные файлы.

Оффлайн c006781

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
По идеи SSH/SFTP - не обязательны. По SSH только подключение к бд и ещё пара штук. А а идея с SFTP взялась из того, что он просто был и желание не усложнять систему. Веб я ещё не трогал. Хотел обойтись тем что есть. Но видимо придётся.

 

Страница сгенерирована за 0.064 секунд. Запросов: 25.