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


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

Автор Тема: Права доступа к папке  (Прочитано 4991 раз)

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

Оффлайн Gvadik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Права доступа к папке
« : 01 Июля 2016, 22:37:55 »
Добрый день!

Дистр 16.04 Ubuntu Mate, и есть пользователь "A" под которым я работаю. К этой системе подключен внешний USB жесткий диск. На этот жесткий диск в папку "folder1" записывают папки и файлы две разные программы. Программа №1 создает папки и файлы с владельцем и группой "B", программа №2 создает папки и файлы с владельцем и группой "C". Ситуация такая, что пользователь "A" не может изменить/удалить каталоги и файлы созданные этими двумя программами. Я не уверен и не знаю как проверить, но вроде бы я добавил пользователя "A" в группу "B" и "C". Потом сделал так Chmod -R 777 /mnt/USB/Folder1/. После данной процедуры пользователь "А" получил доступ на чтение и запись к каталогу "folder1". Но проблема в том, что при создании программами новых каталогов, доступ к новым каталогам для пользователя "А" снова открыт только на чтение. Соответственно вопрос, как сделать полный доступ  пользователю "А" на существующие и вновь создаваемые каталоги и файлы в папке "folder1"? Иначе мне приходится выполнять команду Chmod -R 777 /mnt/USB/Folder1/ при каждом появлении новых каталогов.

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3031
    • Просмотр профиля
Re: Права доступа к папке
« Ответ #1 : 01 Июля 2016, 23:30:50 »
Достаточно 775 и нахождения пользователей в одной группе, но дело в том,
что новый файл создаётся с правами 644, а каталог с правами 755, поэтому
без команды не обойтись. Чтобы файлы создавались с правами 664, а каталоги
правами 775, надо изменить значение umask. По умолчанию оно 022.
Я бы попробовал установить в /etc/login.defs
UMASK 002
но сам я этого никогда не пробовал. Я не уверен, что это поможет и что это
вообще правильное решение.

Можно периодически давать команду chmod, но это неудобно.
Пётр.

Оффлайн andytux

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6901
    • Просмотр профиля
Re: Права доступа к папке
« Ответ #2 : 02 Июля 2016, 04:26:52 »
Применительно к вашим данным, система должна автоматически смонтировать USB-диск в /media/a/USB с правами пользователя a. Попробуйте заставить свои программы писать по этому пути, возможно это решит проблему.

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Права доступа к папке
« Ответ #3 : 02 Июля 2016, 11:02:21 »
А монтировать диск с нужным значением umask? Какая на нём fs?
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3031
    • Просмотр профиля
Re: Права доступа к папке
« Ответ #4 : 02 Июля 2016, 11:45:18 »
Так вопрос не в том, чтобы смонтировать диск. Например, можно на этом диске
создать каталог, принадлежащий nobody:nogroup и дать ему права 775,
а пользователей внести в nogroup, но ведь и так две программы от разных
пользователей могут создавать на этом диске файлы и каталоги. Требуется,
чтобы 3-й пользователь мог эти файлы удалять. Как ни монтируй, у этих файлов
владелец и группа не изменятся. Надо, чтобы 3-й пользователь входил в эту
группу и права на файлы были 664.
« Последнее редактирование: 02 Июля 2016, 21:37:36 от Peter_I »
Пётр.

Оффлайн Gvadik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Права доступа к папке
« Ответ #5 : 02 Июля 2016, 20:40:03 »
Коллеги, а проблема только в том что используется usb диск? Кстати ФС ext4. А если все эти программы перенастроить на локальный жесткий диск, то задача упрощается?
Программы о которых идет речь, это Transmission-daemon, настроен как здесь https://help.ubuntu.ru/wiki/transmission-daemon и Owncloud server. Transmission создает файлы от имени пользователя и группы transmission-daemon, а Owncloud от имени и группы www-data.
« Последнее редактирование: 02 Июля 2016, 20:53:17 от Gvadik »

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3031
    • Просмотр профиля
Re: Права доступа к папке
« Ответ #6 : 02 Июля 2016, 21:15:15 »
Коллеги, а проблема только в том что используется usb диск? Кстати ФС ext4. А если все эти программы перенастроить на локальный жесткий диск, то задача упрощается?
Программы о которых идет речь, это Transmission-daemon, настроен как здесь https://help.ubuntu.ru/wiki/transmission-daemon и Owncloud server. Transmission создает файлы от имени пользователя и группы transmission-daemon, а Owncloud от имени и группы www-data.
Нет, задача не зависит от того, где находятся эти файлы. В любом случае надо внести
3-го пользователя в обе эти группы, но ещё требуется, чтобы член группы тоже
имел полные права на эти файлы, т.е. чтобы они создавались с правами 664.
Если же они создаются с правами 666, то любой будет иметь право их удалять.
Но права на создаваемый файл определяются именно системной umask, равной 022,
а вам надо 002.
Либо записывать всё это на раздел с FAT32, там прав нет.
« Последнее редактирование: 02 Июля 2016, 21:38:04 от Peter_I »
Пётр.

Оффлайн Gvadik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Права доступа к папке
« Ответ #7 : 02 Июля 2016, 21:20:46 »
Цитировать
Либо записывать всё это на раздел с FAT32, там прав нет.

А если ФС будет NTFS? Фат 32 не подходит ввиду ограничений размера на файлы...

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3031
    • Просмотр профиля
Re: Права доступа к папке
« Ответ #8 : 02 Июля 2016, 21:36:32 »
На FAT32 можно держать файлы размего до 4GB. На ntfs - не помню, можно ли её
сделать доступной по записи пользователю. Пишут, что для этого надо
перекомпилировать fuse с какой-то опцией, но это в общем случае, а в Ubuntu,
кажется, пользователь имеет доступ по записи на ntfs, но точно не помню.
Пётр.

Оффлайн perfectsolutions

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Права доступа к папке
« Ответ #9 : 02 Июля 2016, 21:57:52 »
Берем ext4, например она лежит в /mnt/hdd.
Создаем группу, например hddaccess, добавляем в нее всех юзеров которые должны моч туда писать.
Делаем:
chgrp -R hddaccess /mnt/hdd
chmod -R g+rws /mnt/hdd

Ну и всем нужным пользователям (или конкретному софту) задаем umask=0002.

...или я не верно понял вопрос?

Пользователь добавил сообщение 02 Июля 2016, 22:01:33:
g+s позволяет перенимать группу от родительской директории. Удобно. Главное umask не забыть.
« Последнее редактирование: 02 Июля 2016, 22:01:33 от perfectsolutions »

Оффлайн Gvadik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Права доступа к папке
« Ответ #10 : 03 Июля 2016, 00:00:08 »
Я проверил, пользователь "А" состоит в группах "В" и "С", по сути команда chmod -R g+rws /mnt/hdd должна помочь, однако на деле все не так, пользователь "А" все равно не получает доступ на запись.

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3031
    • Просмотр профиля
Re: Права доступа к папке
« Ответ #11 : 03 Июля 2016, 00:15:08 »
Я, пожалуй, ошибся. Посмотрите ещё раз командой "ls -l",  кому принадлежат
файлы, создаваемыми обеими программами. Если окажется, что они принадлежат
группам user1 и user2 соответственно, то, чтобы 3-й пользователь мог их
удалять, все пользователи должны быть в одной группе, а именно в той,
в которой они в /etc/passwd. По умолчанию каждый пользователь - это отдельная
группа. Я у себя всегда делаю так, что все пользователи входят в группу users,
а ей устанавливаю gid=1000, соответсвенно в /etc/group есть строка
users:x:1000:user1,user2,user3Тогда, если у создаваемых файлов будут права 664, то любой из этих пользоввателей
сможет удалять файлы другого. Но это плохое решение.
Пётр.

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: Права доступа к папке
« Ответ #12 : 03 Июля 2016, 00:58:03 »
На FAT32 можно держать файлы размего до 4GB. На ntfs - не помню, можно ли её
сделать доступной по записи пользователю. Пишут, что для этого надо
перекомпилировать fuse с какой-то опцией, но это в общем случае, а в Ubuntu,
кажется, пользователь имеет доступ по записи на ntfs, но точно не помню.
WTF? У меня есть винты с ntfs, все прекрасно на них пишется и писалось с FreeBSD/Arch/Ubuntu (ntfs-3g)

А по теме

Код: (bash) [Выделить]
sudo mount -o remount,umask=002 /mnt/USB # ну и в fstab прописать для диска в опции umask=002,gid=<id общей группы>
sudo chown -R <youruser>:<общая группа> /mnt/USB/Folder1
sudo chmod -R g+w /mnt/USB/Folder1

И от места храниения не зависит, будь то на локальном или съемном диске. Зависит только от ФС и того, какой umask выставлен
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3031
    • Просмотр профиля
Re: Права доступа к папке
« Ответ #13 : 03 Июля 2016, 09:03:08 »
Опция umask - не для ext4. Если есть полный доступ к компюьтеру,
то программы, создающие файлы, можно включить в группу, возможно,
специально созданную, и в неё же включить пользователей, а программы
сделать суидными, чтобы при запуске от пользователя они не меняли группу,
но это тоже плохо.
Пётр.

Оффлайн Gvadik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: Права доступа к папке
« Ответ #14 : 10 Июля 2016, 23:36:26 »
Коллеги, пока единственное решение для меня это использование NTFS, заморочек меньше. Не знаю только в плане надежности/производительности как это как скажется. Тему закрываю. Всем большое спасибо за участие.

 

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