Я хотел бы иметь каталог со следующими свойствами:
Многие пользователи могут копировать в него файлы Эти файлы могут быть удалены / изменены этими пользователями (пользователь A может удалить / изменить файл, который был скопирован в этот каталог)он не может быть выполнен с использованием обычных прав доступа к файлам (поскольку разрешения сохраняются на копии).
Вот что я нашел в сети:
] Многие пользователи могут копировать в него файлы blueprintНекоторые примеры использования:
blueprint Эти файлы могут быть удалены / изменено этими пользователями (пользователь A может удалить / изменить файл, который был скопирован в этот каталог) Разрешить многим разработчикам изменять тестовый экземпляр php-приложения, не давая им root (я думаю, они будут копировать файлы) --- I «Я возглавляю команду некоммерческих младших разработчиков, и мне нужно сохранить это просто!РЕДАКТИРОВАТЬ
Уставка AFAIK для бита SGID не имеет значения, она влияет только на вновь созданные файлы --- и основной рабочий процесс для этих случаев использования ivnolves копирование и другие операции (которые делят файл без изменений )
Если вы хотите, чтобы пользователи имели доступ к файлам в общей папке (например, разные люди регистрируются на одном компьютере в разное время и нуждаются в доступе к тем же файлам), вы можете использовать bindfs для создания общий каталог.
Он позволяет нескольким локальным пользователям читать и писать (создавать, удалять, переименовывать, изменять ...) все файлы (в том числе вновь созданные) из общего каталога и его подкаталогов. Каждый пользователь увидит файлы и папки (в том числе вновь созданные).
Вкратце, вы запускаете
sudo bindfs -o perms=0700,mirror-only=user1:user2:user3 /home/shared /home/shared
, чтобы сделать / home / shared доступным для пользователя1, user2 и user3.
Инструкции
См. Bindfs-SharedDirectoryLocalUsers (документация Ubuntu) для получения полных инструкций, включая постоянную настройку (каждый раз при включении компьютера). Я использую это на своей машине для нескольких каталогов, каждый из которых имеет разные группы обмена (одна папка доступна для всех учетных записей, другая - только для работы учетных записей, другая - только для личных учетных записей).
Из сообщения :
bindfs - файловая система FUSE для установки каталога в другое место (точка монтирования) с настройками разрешений. Он позволяет указать права собственности и разрешения файлов внутри точки монтирования. ... Главное преимущество заключается в том, что новые файлы, созданные в общей папке, наследуют право собственности & amp; разрешения.Инструкции
Примечания к документации:
bindfs - файловая система FUSE для установки каталога в другое место (точка монтирования ), с настройками разрешений. Он позволяет вам указать права собственности и разрешения файлов внутри точки монтирования.
Если вы хотите настроить более расширенные разрешения для разных пользователей и / или группы, попробуйте Списки контроля доступа. [ ! d17]
Вы можете комбинировать решение shellholic с заданием cron, которое обновляет gid для всех файлов в этой папке каждые 15 секунд или что-то подобное.
Просто сделайте следующее:
mkdir /src/teamA
addgroup teamA
chgrp teamA /src/teamA
chmod g+rws /src/teamA
Теперь все в группе teamA могут делать все внутри /src/teamA
Магия - это бит sgid (set group id) в каталоге.
Прямой ответ - списки управления доступом (ACL). Да, вы можете найти контрпример, но они достаточно хороши на практике (в отличие от простой записи в группах, которая требует, чтобы пользователи все время думали об этом). Они требуют, чтобы системный администратор (root) определял группы, если вы хотите, чтобы файлы были разделены только именованной группой (root может выбрать делегирование, например, путем принятия групп из LDAP, но это еще одна история). [ ! d1]
Вам нужно, чтобы участвующие пользователи имели umask из 022. Если они создают файлы, не читаемые во всем мире, эта схема не будет работать.
Ubuntu не включает ACL по умолчанию, поэтому есть один -time-требование администратора. Измените /etc/fstab, используя ваш любимый редактор, и измените каждую строку, соответствующую файловой системе, в которой вы хотите обмениваться файлами: добавьте acl в параметры. (Не забудьте изменить другую строку и не использовать редактор, который обертывает длинные строки.) Ниже приведен пример строки с добавленной опцией acl:
UUID=5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors=remount-ro,acl 0 1
. Для вступления в силу в первый раз используйте следующую команду (для каждой файловой системы):
sudo mount -o remount,acl /
Установите инструменты ACL из пакета контроля доступа (ACL) .
Чтобы файлы были совместно использованы группой mygroup:
setfacl -m group:mygroup:rwx /path/to/shared/root
setfacl -d -m group:mygroup:rwx /path/to/shared/root
Если люди создают файлы и копируют их в общий каталог, файлы будут доступны для чтения по всему миру (из-за umask), и каждый из группы может добавлять и удалять файлы (потому что группа доступна для записи в группе). Люди не могут редактировать файлы друг друга, но это хорошо, или вы сразу столкнетесь с редактированием конфликтов.
Если у вас нет группы unix, вы можете добавлять пользователей по одному :
setfacl -m user:bob:rwx /path/to/shared/root
setfacl -d -m user:bob:rwx /path/to/shared/root
Если вы хотите, чтобы люди могли редактировать файлы на месте, вам также нужно что-то, чтобы предотвратить конфликты редактирования. Это контроль версий.
Вам не нужно ничего из этого, чтобы поделиться репозиторием git. Вы знаете, что есть такие решения, как гитоз, поэтому используйте их.
Если вы хотите, чтобы пользователи имели доступ к файлам в общей папке (например, разные люди регистрируются на одном компьютере в разное время и нуждаются в доступе к тем же файлам), вы можете использовать bindfs для создания общий каталог.
Он позволяет нескольким локальным пользователям читать и писать (создавать, удалять, переименовывать, изменять ...) все файлы (в том числе вновь созданные) из общего каталога и его подкаталогов. Каждый пользователь увидит файлы и папки (в том числе вновь созданные).
Вкратце, вы запускаете
sudo bindfs -o perms=0700,mirror-only=user1:user2:user3 /home/shared /home/shared
, чтобы сделать / home / shared доступным для пользователя1, user2 и user3.
Инструкции
См. Bindfs-SharedDirectoryLocalUsers (документация Ubuntu) для получения полных инструкций, включая постоянную настройку (каждый раз при включении компьютера). Я использую это на своей машине для нескольких каталогов, каждый из которых имеет разные группы обмена (одна папка доступна для всех учетных записей, другая - только для работы учетных записей, другая - только для личных учетных записей).
Из сообщения :
bindfs - файловая система FUSE для установки каталога в другое место (точка монтирования) с настройками разрешений. Он позволяет указать права собственности и разрешения файлов внутри точки монтирования. ... Главное преимущество заключается в том, что новые файлы, созданные в общей папке, наследуют право собственности & amp; разрешения.Инструкции
Примечания к документации:
bindfs - файловая система FUSE для установки каталога в другое место (точка монтирования ), с настройками разрешений. Он позволяет вам указать права собственности и разрешения файлов внутри точки монтирования.
Если вы хотите настроить более расширенные разрешения для разных пользователей и / или группы, попробуйте Списки контроля доступа. [ ! d17]
Вы можете комбинировать решение shellholic с заданием cron, которое обновляет gid для всех файлов в этой папке каждые 15 секунд или что-то подобное.
Просто сделайте следующее:
mkdir /src/teamA
addgroup teamA
chgrp teamA /src/teamA
chmod g+rws /src/teamA
Теперь все в группе teamA могут делать все внутри /src/teamA
Магия - это бит sgid (set group id) в каталоге.
Прямой ответ - списки управления доступом (ACL). Да, вы можете найти контрпример, но они достаточно хороши на практике (в отличие от простой записи в группах, которая требует, чтобы пользователи все время думали об этом). Они требуют, чтобы системный администратор (root) определял группы, если вы хотите, чтобы файлы были разделены только именованной группой (root может выбрать делегирование, например, путем принятия групп из LDAP, но это еще одна история). [ ! d1]
Вам нужно, чтобы участвующие пользователи имели umask из 022. Если они создают файлы, не читаемые во всем мире, эта схема не будет работать.
Ubuntu не включает ACL по умолчанию, поэтому есть один -time-требование администратора. Измените /etc/fstab, используя ваш любимый редактор, и измените каждую строку, соответствующую файловой системе, в которой вы хотите обмениваться файлами: добавьте acl в параметры. (Не забудьте изменить другую строку и не использовать редактор, который обертывает длинные строки.) Ниже приведен пример строки с добавленной опцией acl:
UUID=5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors=remount-ro,acl 0 1
. Для вступления в силу в первый раз используйте следующую команду (для каждой файловой системы):
sudo mount -o remount,acl /
Установите инструменты ACL из пакета контроля доступа (ACL) .
Чтобы файлы были совместно использованы группой mygroup:
setfacl -m group:mygroup:rwx /path/to/shared/root
setfacl -d -m group:mygroup:rwx /path/to/shared/root
Если люди создают файлы и копируют их в общий каталог, файлы будут доступны для чтения по всему миру (из-за umask), и каждый из группы может добавлять и удалять файлы (потому что группа доступна для записи в группе). Люди не могут редактировать файлы друг друга, но это хорошо, или вы сразу столкнетесь с редактированием конфликтов.
Если у вас нет группы unix, вы можете добавлять пользователей по одному :
setfacl -m user:bob:rwx /path/to/shared/root
setfacl -d -m user:bob:rwx /path/to/shared/root
Если вы хотите, чтобы люди могли редактировать файлы на месте, вам также нужно что-то, чтобы предотвратить конфликты редактирования. Это контроль версий.
Вам не нужно ничего из этого, чтобы поделиться репозиторием git. Вы знаете, что есть такие решения, как гитоз, поэтому используйте их.
Вы можете комбинировать решение shellholic с заданием cron, которое обновляет gid для всех файлов в этой папке каждые 15 секунд или что-то подобное.
Просто выполните это:
mkdir / src / teamA команда addgroupA chgrp teamA / src / teamA chmod g + rws / src / teamA
Теперь все в группе teamA
могут делать все внутри / src / teamA
Магия - это бит sgid (set group id) в каталоге.
Прямой ответ - списки управления доступом (ACL) . Да, вы можете найти контрпример, но они достаточно хороши на практике (в отличие от простой записи в группах, которая требует, чтобы пользователи все время думали об этом). Они требуют, чтобы системный администратор (root) определял группы, если вы хотите, чтобы файлы были разделены только именованной группой (root может выбрать делегирование, например, путем принятия групп из LDAP, но это еще одна история). [ ! d14]
Вам нужно, чтобы участвующие пользователи имели umask от 022. Если они создают файлы, не читаемые во всем мире, эта схема не будет работать.
Ubuntu по умолчанию не включает ACL, поэтому есть один -time-требование администратора. Измените / etc / fstab
, используя ваш любимый редактор, и измените каждую строку, соответствующую файловой системе, где вы хотите обмениваться файлами: добавьте acl
в параметры. (Не забудьте изменить другую строку и не использовать редактор, который переносит длинные строки.) Ниже приведен пример строки с добавленной опцией acl
:
UUID = 5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors = remount-ro, acl 0 1
Чтобы вариант вступил в силу в первый раз, используйте команду, подобную следующей (для каждая файловая система):
sudo mount -o remount, acl /
Установите инструменты ACL из пакета acl . [ ! d18]
Чтобы файлы были разделены группой mygroup
:
setfacl -m group: mygroup : rwx / path / to / shared / root setfacl -d -m group: mygroup: rwx / path / to / shared / root
Если люди создают файлы и копируют их в общий каталог , файлы будут читаемыми по всему миру (из-за umask), и каждый из группы может добавлять и удалять файлы (потому что группа доступна для записи в группе). Люди не могут редактировать файлы друг друга, но это хорошо или вы сразу же столкнетесь с редактированием конфликтов.
Если у вас нет группы unix, вы можете добавлять пользователей по одному :
setfacl -m user: bob: rwx / path / to / shared / root setfacl -d -m user: bob: rwx / path / to / shared / root
[ ! d27]Контроль версий
Если вы хотите, чтобы люди могли редактировать файлы на месте, вам также нужно что-то, чтобы предотвратить конфликты редактирования. Это контроль версий.
Вам не нужно ничего из этого, чтобы разделить репозиторий git. Вы знаете, что есть такие решения, как гитоз, поэтому используйте их.
Если вы хотите, чтобы пользователи имели доступ к файлам в общей папке (например, разные люди регистрируются на одном компьютере в разное время и нуждаются в доступе к тем же файлам), вы можете использовать bindfs
, чтобы создать общий каталог.
Он позволяет нескольким локальным пользователям читать и писать (создавать, удалять, переименовывать, изменять ...) все файлы (в том числе вновь созданные) из общего каталога и его подкаталоги.
Вкратце, вы запускаете
sudo bindfs -o perms = 0700, зеркало- only = user1: user2: user3 / home / shared / home / shared
, чтобы сделать / home / shared доступным для пользователей1, user2 и user3.
Инструкции
Подробные инструкции см. в Bindfs-SharedDirectoryLocalUsers (документация Ubuntu) , включая настройку навсегда (при каждом включении компьютера). Я использую это на своей машине для нескольких каталогов, каждый из которых имеет разные группы обмена (одна папка доступна для всех учетных записей, другая - только для работы учетных записей, другая - только для личных учетных записей).
Из сообщения :
bindfs - файловая система FUSE для установки каталога в другое место (точка монтирования) с настройками разрешений. Это позволяет вам указать права собственности и разрешения файлов внутри точки монтирования.
...
Главное преимущество в том, что новые файлы, созданные в общей папке, наследуют владение & amp; Разрешения.
blockquote>Списки контроля доступа (ACL)
Примечания к документации:
Если вы хотите установить более расширенные разрешения для разные пользователи и / или группа попробуют Списки контроля доступа .
blockquote>Подробнее см. Gilles answer .
Вы можете комбинировать решение shellholic с заданием cron, которое обновляет gid для всех файлов в этой папке каждые 15 секунд или что-то подобное.
Просто выполните это:
mkdir / src / teamA команда addgroupA chgrp teamA / src / teamA chmod g + rws / src / teamA
Теперь все в группе teamA
могут делать все внутри / src / teamA
Магия - это бит sgid (set group id) в каталоге.
Прямой ответ - списки управления доступом (ACL) . Да, вы можете найти контрпример, но они достаточно хороши на практике (в отличие от простой записи в группах, которая требует, чтобы пользователи все время думали об этом). Они требуют, чтобы системный администратор (root) определял группы, если вы хотите, чтобы файлы были разделены только именованной группой (root может выбрать делегирование, например, путем принятия групп из LDAP, но это еще одна история). [ ! d14]
Вам нужно, чтобы участвующие пользователи имели umask от 022. Если они создают файлы, не читаемые во всем мире, эта схема не будет работать.
Ubuntu по умолчанию не включает ACL, поэтому есть один -time-требование администратора. Измените / etc / fstab
, используя ваш любимый редактор, и измените каждую строку, соответствующую файловой системе, где вы хотите обмениваться файлами: добавьте acl
в параметры. (Не забудьте изменить другую строку и не использовать редактор, который переносит длинные строки.) Ниже приведен пример строки с добавленной опцией acl
:
UUID = 5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors = remount-ro, acl 0 1
Чтобы вариант вступил в силу в первый раз, используйте команду, подобную следующей (для каждая файловая система):
sudo mount -o remount, acl /
Установите инструменты ACL из пакета acl . [ ! d18]
Чтобы файлы были разделены группой mygroup
:
setfacl -m group: mygroup : rwx / path / to / shared / root setfacl -d -m group: mygroup: rwx / path / to / shared / root
Если люди создают файлы и копируют их в общий каталог , файлы будут читаемыми по всему миру (из-за umask), и каждый из группы может добавлять и удалять файлы (потому что группа доступна для записи в группе). Люди не могут редактировать файлы друг друга, но это хорошо или вы сразу же столкнетесь с редактированием конфликтов.
Если у вас нет группы unix, вы можете добавлять пользователей по одному :
setfacl -m user: bob: rwx / path / to / shared / root setfacl -d -m user: bob: rwx / path / to / shared / root
[ ! d27]Контроль версий
Если вы хотите, чтобы люди могли редактировать файлы на месте, вам также нужно что-то, чтобы предотвратить конфликты редактирования. Это контроль версий.
Вам не нужно ничего из этого, чтобы разделить репозиторий git. Вы знаете, что есть такие решения, как гитоз, поэтому используйте их.
Если вы хотите, чтобы пользователи имели доступ к файлам в общей папке (например, разные люди регистрируются на одном компьютере в разное время и нуждаются в доступе к тем же файлам), вы можете использовать bindfs
, чтобы создать общий каталог.
Он позволяет нескольким локальным пользователям читать и писать (создавать, удалять, переименовывать, изменять ...) все файлы (в том числе вновь созданные) из общего каталога и его подкаталоги.
Вкратце, вы запускаете
sudo bindfs -o perms = 0700, зеркало- only = user1: user2: user3 / home / shared / home / shared
, чтобы сделать / home / shared доступным для пользователей1, user2 и user3.
Инструкции
Подробные инструкции см. в Bindfs-SharedDirectoryLocalUsers (документация Ubuntu) , включая настройку навсегда (при каждом включении компьютера). Я использую это на своей машине для нескольких каталогов, каждый из которых имеет разные группы обмена (одна папка доступна для всех учетных записей, другая - только для работы учетных записей, другая - только для личных учетных записей).
Из сообщения :
bindfs - файловая система FUSE для установки каталога в другое место (точка монтирования) с настройками разрешений. Это позволяет вам указать права собственности и разрешения файлов внутри точки монтирования.
...
Главное преимущество в том, что новые файлы, созданные в общей папке, наследуют владение & amp; Разрешения.
blockquote>Списки контроля доступа (ACL)
Примечания к документации:
Если вы хотите установить более расширенные разрешения для разные пользователи и / или группа попробуют Списки контроля доступа .
blockquote>Подробнее см. Gilles answer .
Вы можете комбинировать решение shellholic с заданием cron, которое обновляет gid для всех файлов в этой папке каждые 15 секунд или что-то подобное.
Просто выполните это:
mkdir / src / teamA команда addgroupA chgrp teamA / src / teamA chmod g + rws / src / teamA
Теперь все в группе teamA
могут делать все внутри / src / teamA
Магия - это бит sgid (set group id) в каталоге.
Прямой ответ - списки управления доступом (ACL) . Да, вы можете найти контрпример, но они достаточно хороши на практике (в отличие от простой записи в группах, которая требует, чтобы пользователи все время думали об этом). Они требуют, чтобы системный администратор (root) определял группы, если вы хотите, чтобы файлы были разделены только именованной группой (root может выбрать делегирование, например, путем принятия групп из LDAP, но это еще одна история). [ ! d14]
Вам нужно, чтобы участвующие пользователи имели umask от 022. Если они создают файлы, не читаемые во всем мире, эта схема не будет работать.
Ubuntu по умолчанию не включает ACL, поэтому есть один -time-требование администратора. Измените / etc / fstab
, используя ваш любимый редактор, и измените каждую строку, соответствующую файловой системе, где вы хотите обмениваться файлами: добавьте acl
в параметры. (Не забудьте изменить другую строку и не использовать редактор, который переносит длинные строки.) Ниже приведен пример строки с добавленной опцией acl
:
UUID = 5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors = remount-ro, acl 0 1
Чтобы вариант вступил в силу в первый раз, используйте команду, подобную следующей (для каждая файловая система):
sudo mount -o remount, acl /
Установите инструменты ACL из пакета acl . [ ! d18]
Чтобы файлы были разделены группой mygroup
:
setfacl -m group: mygroup : rwx / path / to / shared / root setfacl -d -m group: mygroup: rwx / path / to / shared / root
Если люди создают файлы и копируют их в общий каталог , файлы будут читаемыми по всему миру (из-за umask), и каждый из группы может добавлять и удалять файлы (потому что группа доступна для записи в группе). Люди не могут редактировать файлы друг друга, но это хорошо или вы сразу же столкнетесь с редактированием конфликтов.
Если у вас нет группы unix, вы можете добавлять пользователей по одному :
setfacl -m user: bob: rwx / path / to / shared / root setfacl -d -m user: bob: rwx / path / to / shared / root
[ ! d27]Контроль версий
Если вы хотите, чтобы люди могли редактировать файлы на месте, вам также нужно что-то, чтобы предотвратить конфликты редактирования. Это контроль версий.
Вам не нужно ничего из этого, чтобы разделить репозиторий git. Вы знаете, что есть такие решения, как гитоз, поэтому используйте их.
Если вы хотите, чтобы пользователи имели доступ к файлам в общей папке (например, разные люди регистрируются на одном компьютере в разное время и нуждаются в доступе к тем же файлам), вы можете использовать bindfs
, чтобы создать общий каталог.
Он позволяет нескольким локальным пользователям читать и писать (создавать, удалять, переименовывать, изменять ...) все файлы (в том числе вновь созданные) из общего каталога и его подкаталоги.
Вкратце, вы запускаете
sudo bindfs -o perms = 0700, зеркало- only = user1: user2: user3 / home / shared / home / shared
, чтобы сделать / home / shared доступным для пользователей1, user2 и user3.
Инструкции
Подробные инструкции см. в Bindfs-SharedDirectoryLocalUsers (документация Ubuntu) , включая настройку навсегда (при каждом включении компьютера). Я использую это на своей машине для нескольких каталогов, каждый из которых имеет разные группы обмена (одна папка доступна для всех учетных записей, другая - только для работы учетных записей, другая - только для личных учетных записей).
Из сообщения :
bindfs - файловая система FUSE для установки каталога в другое место (точка монтирования) с настройками разрешений. Это позволяет вам указать права собственности и разрешения файлов внутри точки монтирования.
...
Главное преимущество в том, что новые файлы, созданные в общей папке, наследуют владение & amp; Разрешения.
blockquote>Списки контроля доступа (ACL)
Примечания к документации:
Если вы хотите установить более расширенные разрешения для разные пользователи и / или группа попробуют Списки контроля доступа .
blockquote>Подробнее см. Gilles answer .
Вы можете комбинировать решение shellholic с заданием cron, которое обновляет gid для всех файлов в этой папке каждые 15 секунд или что-то подобное.
Просто выполните это:
mkdir / src / teamA команда addgroupA chgrp teamA / src / teamA chmod g + rws / src / teamA
Теперь все в группе teamA
могут делать все внутри / src / teamA
Магия - это бит sgid (set group id) в каталоге.
Прямой ответ - списки управления доступом (ACL) . Да, вы можете найти контрпример, но они достаточно хороши на практике (в отличие от простой записи в группах, которая требует, чтобы пользователи все время думали об этом). Они требуют, чтобы системный администратор (root) определял группы, если вы хотите, чтобы файлы были разделены только именованной группой (root может выбрать делегирование, например, путем принятия групп из LDAP, но это еще одна история). [ ! d14]
Вам нужно, чтобы участвующие пользователи имели umask от 022. Если они создают файлы, не читаемые во всем мире, эта схема не будет работать.
Ubuntu по умолчанию не включает ACL, поэтому есть один -time-требование администратора. Измените / etc / fstab
, используя ваш любимый редактор, и измените каждую строку, соответствующую файловой системе, где вы хотите обмениваться файлами: добавьте acl
в параметры. (Не забудьте изменить другую строку и не использовать редактор, который переносит длинные строки.) Ниже приведен пример строки с добавленной опцией acl
:
UUID = 5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors = remount-ro, acl 0 1
Чтобы вариант вступил в силу в первый раз, используйте команду, подобную следующей (для каждая файловая система):
sudo mount -o remount, acl /
Установите инструменты ACL из пакета acl . [ ! d18]
Чтобы файлы были разделены группой mygroup
:
setfacl -m group: mygroup : rwx / path / to / shared / root setfacl -d -m group: mygroup: rwx / path / to / shared / root
Если люди создают файлы и копируют их в общий каталог , файлы будут читаемыми по всему миру (из-за umask), и каждый из группы может добавлять и удалять файлы (потому что группа доступна для записи в группе). Люди не могут редактировать файлы друг друга, но это хорошо или вы сразу же столкнетесь с редактированием конфликтов.
Если у вас нет группы unix, вы можете добавлять пользователей по одному :
setfacl -m user: bob: rwx / path / to / shared / root setfacl -d -m user: bob: rwx / path / to / shared / root
[ ! d27]Контроль версий
Если вы хотите, чтобы люди могли редактировать файлы на месте, вам также нужно что-то, чтобы предотвратить конфликты редактирования. Это контроль версий.
Вам не нужно ничего из этого, чтобы разделить репозиторий git. Вы знаете, что есть такие решения, как гитоз, поэтому используйте их.
Если вы хотите, чтобы пользователи имели доступ к файлам в общей папке (например, разные люди регистрируются на одном компьютере в разное время и нуждаются в доступе к тем же файлам), вы можете использовать bindfs
, чтобы создать общий каталог.
Он позволяет нескольким локальным пользователям читать и писать (создавать, удалять, переименовывать, изменять ...) все файлы (в том числе вновь созданные) из общего каталога и его подкаталоги.
Вкратце, вы запускаете
sudo bindfs -o perms = 0700, зеркало- only = user1: user2: user3 / home / shared / home / shared
, чтобы сделать / home / shared доступным для пользователей1, user2 и user3.
Инструкции
Подробные инструкции см. в Bindfs-SharedDirectoryLocalUsers (документация Ubuntu) , включая настройку навсегда (при каждом включении компьютера). Я использую это на своей машине для нескольких каталогов, каждый из которых имеет разные группы обмена (одна папка доступна для всех учетных записей, другая - только для работы учетных записей, другая - только для личных учетных записей).
Из сообщения :
bindfs - файловая система FUSE для установки каталога в другое место (точка монтирования) с настройками разрешений. Это позволяет вам указать права собственности и разрешения файлов внутри точки монтирования.
...
Главное преимущество в том, что новые файлы, созданные в общей папке, наследуют владение & amp; Разрешения.
blockquote>Списки контроля доступа (ACL)
Примечания к документации:
Если вы хотите установить более расширенные разрешения для разные пользователи и / или группа попробуют Списки контроля доступа .
blockquote>Подробнее см. Gilles answer .
Вы можете комбинировать решение shellholic с заданием cron, которое обновляет gid для всех файлов в этой папке каждые 15 секунд или что-то подобное.
Просто выполните это:
mkdir / src / teamA команда addgroupA chgrp teamA / src / teamA chmod g + rws / src / teamA
Теперь все в группе teamA
могут делать все внутри / src / teamA
Магия - это бит sgid (set group id) в каталоге.
Прямой ответ - списки управления доступом (ACL) . Да, вы можете найти контрпример, но они достаточно хороши на практике (в отличие от простой записи в группах, которая требует, чтобы пользователи все время думали об этом). Они требуют, чтобы системный администратор (root) определял группы, если вы хотите, чтобы файлы были разделены только именованной группой (root может выбрать делегирование, например, путем принятия групп из LDAP, но это еще одна история). [ ! d14]
Вам нужно, чтобы участвующие пользователи имели umask от 022. Если они создают файлы, не читаемые во всем мире, эта схема не будет работать.
Ubuntu по умолчанию не включает ACL, поэтому есть один -time-требование администратора. Измените / etc / fstab
, используя ваш любимый редактор, и измените каждую строку, соответствующую файловой системе, где вы хотите обмениваться файлами: добавьте acl
в параметры. (Не забудьте изменить другую строку и не использовать редактор, который переносит длинные строки.) Ниже приведен пример строки с добавленной опцией acl
:
UUID = 5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors = remount-ro, acl 0 1
Чтобы вариант вступил в силу в первый раз, используйте команду, подобную следующей (для каждая файловая система):
sudo mount -o remount, acl /
Установите инструменты ACL из пакета acl . [ ! d18]
Чтобы файлы были разделены группой mygroup
:
setfacl -m group: mygroup : rwx / path / to / shared / root setfacl -d -m group: mygroup: rwx / path / to / shared / root
Если люди создают файлы и копируют их в общий каталог , файлы будут читаемыми по всему миру (из-за umask), и каждый из группы может добавлять и удалять файлы (потому что группа доступна для записи в группе). Люди не могут редактировать файлы друг друга, но это хорошо или вы сразу же столкнетесь с редактированием конфликтов.
Если у вас нет группы unix, вы можете добавлять пользователей по одному :
setfacl -m user: bob: rwx / path / to / shared / root setfacl -d -m user: bob: rwx / path / to / shared / root
[ ! d27]Контроль версий
Если вы хотите, чтобы люди могли редактировать файлы на месте, вам также нужно что-то, чтобы предотвратить конфликты редактирования. Это контроль версий.
Вам не нужно ничего из этого, чтобы разделить репозиторий git. Вы знаете, что есть такие решения, как гитоз, поэтому используйте их.
Если вы хотите, чтобы пользователи имели доступ к файлам в общей папке (например, разные люди регистрируются на одном компьютере в разное время и нуждаются в доступе к тем же файлам), вы можете использовать bindfs
, чтобы создать общий каталог.
Он позволяет нескольким локальным пользователям читать и писать (создавать, удалять, переименовывать, изменять ...) все файлы (в том числе вновь созданные) из общего каталога и его подкаталоги.
Вкратце, вы запускаете
sudo bindfs -o perms = 0700, зеркало- only = user1: user2: user3 / home / shared / home / shared
, чтобы сделать / home / shared доступным для пользователей1, user2 и user3.
Инструкции
Подробные инструкции см. в Bindfs-SharedDirectoryLocalUsers (документация Ubuntu) , включая настройку навсегда (при каждом включении компьютера). Я использую это на своей машине для нескольких каталогов, каждый из которых имеет разные группы обмена (одна папка доступна для всех учетных записей, другая - только для работы учетных записей, другая - только для личных учетных записей).
Из сообщения :
bindfs - файловая система FUSE для установки каталога в другое место (точка монтирования) с настройками разрешений. Это позволяет вам указать права собственности и разрешения файлов внутри точки монтирования.
...
Главное преимущество в том, что новые файлы, созданные в общей папке, наследуют владение & amp; Разрешения.
blockquote>Списки контроля доступа (ACL)
Примечания к документации:
Если вы хотите установить более расширенные разрешения для разные пользователи и / или группа попробуют Списки контроля доступа .
blockquote>Подробнее см. Gilles answer .