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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Файлобменник на Linux с групповыми правами доступа  (Прочитано 3220 раз)

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

Оффлайн Павел_

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Озадачились интересной темой, cоздание файлообменника на базе Linux.

Для простоты предположим есть ГРУППА1 и ГРУППА2, в первую входит - ПОЛЬЗОВАТЕЛЬ1, во вторую - ПОЛЬЗОВАТЕЛЬ2. (в реальности в группу может входить произвольное количество пользователей)

Хочется создать структуру папок со следующими правами на содержимое папок:
-ОБЩАЯ ПАПКА (Администратор имеет полный доступ ко всем подпапкам и файлам)
--ПАПКА ГРУППЫ1
(Все пользователи ГРУППЫ1 имеют полный доступ ко всем подпапкам и файлам в ней хранящимся,
пользователи ГРУППЫ2 имеют право записи своих файлов, к своим файлам полный доступ, а к чужим только чтение)
--ПАПКА ГРУППЫ2
(Все пользователи ГРУППЫ2 имеют полный доступ ко всем подпапкам и файлам в ней хранящимся,
пользователи ГРУППЫ1 имеют право записи своих файлов, к своим файлам полный доступ, а к чужим только чтение)

Т.е. ПОЛЬЗОВАТЕЛЬ1 должен быть полным хозяином своей папки и иметь возможность передать файлы в ГРУППУ2, и к переданному файлу иметь полный доступ, (и изменение и удаление), а вот к чужим файлам в чужой папке (созданных ПОЛЬЗОВАТЕЛЕМ2 в ПАПКЕ ГРУППЫ2) только просмотр.

Samba установлена, папка расшарена, подпапки групп созданы, в сети видны, пользователи авторизуются.
Каким образом можно реализовать такой хитрый набор прав доступа?

Оффлайн golota

  • Участник
  • *
  • Сообщений: 132
    • Просмотр профиля
Здесь кое что и здесь

гуглите что-нибудь типа - Filesystem Access Control Lists ACL
и настраивайте.

« Последнее редактирование: 04 Февраль 2014, 20:55:39 от golota »
Я знаю то, что ничего не знаю, но некоторые не знают и этого. Сократ

Оффлайн Павел_

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
С правами получается интересная ситуация.
Чтобы не член ГРУППЫ2 (ПОЛЬЗОВАТЕЛЬ1) имел возможность записи в нее файлов, для гостей должны быть установлены права rwx (7 - полные), но эти права дают возможность гостю папки так же и удалять любые файлы.
Как сделать так, чтобы на уже созданные файлы операции изменения имени, удаления брались на основании прав описанных в самом файле, а не из папки в котором он находится?

Пользователь решил продолжить мысль 07 Февраль 2014, 14:16:33:
Если схематично:

ПАПКА1 (права - 777)
- файл (права 775)  ПОЛЬЗОВАТЕЛЬ2 - гость, для него права на файл r-x (5)

Когда пытаются переименовать файл или удалить права должны браться из файла, т.е. - 5. Как так сделать? По умолчанию берутся права из ПАПКИ, т.е. - 7
« Последнее редактирование: 07 Февраль 2014, 14:16:33 от Павел_ »

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2261
    • Просмотр профиля
Чтобы файлы мог удалять только их создатель, есть sticky bit (http://ru.wikipedia.org/wiki/Sticky_bit)

sudo chmod +t /path/to/folder

Это используется, в частности, в директории /tmp

Оффлайн Павел_

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Да, в русской редакции это закрепляющий бит.
Если установить его на папку, то все создаваемые файлы внутри удаляются только создателем.
В рамках моей задачи в своей папке таким способом я теряю возможность удалять файлы переданные мне соседними группами. А в своей папке нужно быть полноправным хозяином.

А вот если ставить этот бит непосредственно на файл, то условия задачи полностью решаются.
Остается вопрос. Как при создании файла автоматом заставить взвестить этот бит.
P.S. Планирую как доделаю накидаю маленький мануал по созданию файлообменника, вдруг кому-то пригодится.

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2261
    • Просмотр профиля
Этот бит на файле не работает - он в linux игнорируется.

Оффлайн golota

  • Участник
  • *
  • Сообщений: 132
    • Просмотр профиля
Без ACL ,
со стандартными Unix File and Directory Permissions and Modes, ваша задача не решается.
Я знаю то, что ничего не знаю, но некоторые не знают и этого. Сократ

Оффлайн MrModest

  • Активист
  • *
  • Сообщений: 336
  • HP Pavilion dv6 3305er
    • Просмотр профиля
    • MrModest in MAL
А почему не сделать 3 папки?
- папка 1 - полный доступ для группы 1, права чтения для группы 2 (личные владения группы 1)
- папка 2 - полный доступ для группы 2, права чтения для группы 1 (личные владения группы 2)
- папка 3 - общая шара:
             - папка 3.1 - полный доступ для всех (этакая временная помойка)
             - папка 3.2 - полный доступ только у создателя файла, у остальных право на чтение

И путаницы не будет. =/
Windows 10 Pro x64       | Ubuntu 14.04 amd64
Intel Core i5 @ 2.67 GHz | AMD Radeon HD 6550M 1Gb (Notebook Graphics)
RAM: 8Gb | HDD: 500Gb (Ubuntu-49Gb, SWAP-1Gb, Windows-100Gb, Storage-330G

Оффлайн Yuriy_Y

  • Старожил
  • *
  • Сообщений: 1736
    • Просмотр профиля
    • Новоишимка
Озадачились интересной темой, cоздание файлообменника на базе Linux.
Каким образом можно реализовать такой хитрый набор прав доступа?
Обратите внимание на openmediavault. Специальный дистр для этого. Все настройки через веб. Запустил уже один. Дистр, правда, debian, а не Ubuntu. Штука хорошая, в общем.
С уважением, Юрий.

Оффлайн Павел_

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
А почему не сделать 3 папки?
- папка 1 - полный доступ для группы 1, права чтения для группы 2 (личные владения группы 1)
- папка 2 - полный доступ для группы 2, права чтения для группы 1 (личные владения группы 2)
- папка 3 - общая шара:
             - папка 3.1 - полный доступ для всех (этакая временная помойка)
             - папка 3.2 - полный доступ только у создателя файла, у остальных право на чтение

И путаницы не будет. =/


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

 

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