Как настроить папку так, чтобы все, что в ней создавалось, наследовало разрешения?

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

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

7 ответов

Другой подход заключается в использовании списков контроля доступа, расширенного набора прав доступа к файлам.

Прежде всего, мы должны установить ACL Установить ACL пакет:

sudo apt-get install acl

Перед Ubuntu 14.04 раздел должен быть смонтирован с опцией acl чтобы следующие работали. Это может быть добавлено в /etc/fstab, как в

UUID=<XXXX>  /media/shared  ext4  noatime,acl  0  2

или для уже смонтированной файловой системы

sudo mount -o remount,acl /media/shared

Далее необходимо создать новую группу, в которую будут добавлены все пользователи, которым разрешен доступ к общему ресурсу в режиме чтения / записи. Я называю это usershare, Уже существующая группа может быть использована.

sudo addgroup usershare

Теперь мы добавляем пользователей enzotib а также steevc к этой группе:

sudo gpasswd -a steevc  usershare
sudo gpasswd -a enzotib usershare

(действует при следующем входе в систему).

Затем мы добавляем ACL с rwx разрешения для группы usershare ко всем файлам уже в /media/shared

sudo setfacl -Rm g:usershare:rwX /media/shared

Наконец, мы добавляем ACL по умолчанию с rwx разрешения для группы usershare для всех файлов, созданных с этого момента внутри /media/shared

sudo setfacl -d -Rm g:usershare:rwX /media/shared

Теперь все пользователи usershare Группа имеет полные права на все файлы в /media/shared, Разрешения каждого пользователя в его и других домашних каталогах не затрагиваются.

Я проверил это решение и, кажется, работает, но предложения и исправления приветствуются.

Примечание: новые файлы и каталоги, созданные в рассматриваемом каталоге, будут иметь разрешение на запись для usershare группы, но файлы, скопированные или перемещенные в папку, сохранят свои исходные разрешения. Если пользователю, как я понимаю, требуется только доступ на запись во вновь созданные каталоги, это не проблема. В противном случае он должен изменить разрешения вручную. Посмотрите этот ответ о том, как преодолеть это путем определения маски пользователей для 002,

  1. Сделать папку.

    Например:

    mkdir /mnt/family
    

    Если вам нужно смонтировать раздел к ним... если ext4 все, что вам нужно в /etc/fstab является

    UUID=xxx    /mnt/family ext4    **rw,exec,defaults,auto,async   0   2**
    
  2. Создать группу myfam.

    addgroup myfam
    
  3. Добавьте некоторых пользователей в эту группу

    adduser papa myfam  
    adduser mom myfam
    
  4. Теперь возьми и дай разрешение.

    Я думаю, что вы должны начать с изменения umask,

    Стандартные разрешения файловой системы и права доступа в 12.04

    chown -R you.myfam /mnt/family  
    chmod -R g+rwx /mnt/family  
    

    Теперь самое главное. Эту линию создать setgid все, что вы создаете в этой папке, имеет ваших пользователей в качестве владельца и группы myfam, Это позволило системе переопределить основную группу пользователей.

    chmod -R g+s /mnt/family   
    

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

Затем измените umask каждого пользователя с 022 на 002, это можно сделать в /etc/profile,

редактировать

Первый шаг можно заменить следующим: сделать так, чтобы все пользователи принадлежали users группа в качестве основной группы.

Edi2

Как предположил @James_Henstridge, может быть удобно установить бит setgid в главном каталоге, чтобы создаваемые новые файлы и каталоги имели свою группу независимо от пользователя. Таким образом, вы можете избежать набора users в качестве основной группы для пользователей.

Это звучит как работа для ACL. У Джайлса очень подробный ответ на сайте SE Unix и Linux, который помог мне решить ту же проблему.

Я не понимаю, все ли linux-linux, linux-windows, linux-???, используют Samba?, SSH?, Pigeons?; В любом случае вам нужно включить других в группу с вашим именем пользователя (вашей группой), и они получат те же разрешения, что и вы.

У меня есть видеофайлы на мое имя, но когда я вхожу под именем моей дочери, ее учетная запись не может видеть видеофайлы. Итак, я перешел к учетным записям пользователей, разблокирован (вверху справа), затем изменил тип ее учетной записи со "стандартного" на "администратор" (что и есть моя учетная запись), и теперь все видеофайлы, на самом деле все, отображаются когда залогинен под своей учетной записью.

Я сталкивался с этим вопросом, когда искал ответы на мою проблему РАЗРЕШЕНИЯ ГРУППЫ. Я прочитал вопрос и, кажется, я уже реализую то, что пытается сделать вопрос.

Поэтому я удосужился ответить на него.

У меня уже есть настройка общего ресурса для всех пользователей в моей локальной сети только для чтения и выполнения, и только моя учетная запись имеет разрешение на запись в общие папки.

У меня есть многоцелевой сервер на моей локальной сети, который использует Ubuntu 12.04 LTS Desktop Edition. У меня есть смешанные клиентские машины Linux и Windows.

Вот как я это настроил:

1. На моем сервере есть учетные записи пользователей admin а также clientone

admin учетная запись является учетной записью, созданной, когда я установил Ubuntu и clientone учетная запись - это учетная запись, созданная с помощью меню USER ACCOUNTS в Ubuntu. Он имеет только стандартное разрешение, никаких привилегий администратора и добавляется в users группа. Конечно, вы можете сделать это, используя только терминал. Добавьте больше дополнительных учетных записей для ваших клиентских компьютеров.

2. Общий раздел / папка автоматически монтируется в fstab с использованием только опции по умолчанию.

3. Моя сеть находится в среде рабочей группы и включена mylan рабочая группа.

Все машины в моей локальной сети настроены на использование mylan рабочая группа.

4. Моя общая папка с именем shared уже есть файлы в нем. Поэтому я рекурсивно меняю владельца и группу для него, используя команду ниже.

 sudo chown -Rv admin:users /shared

5. Я также устанавливаю права доступа к папкам и файлам /shared папка рекурсивно с помощью команды

 sudo chmod -Rv 750 /shared

гостевые машины в моем mylan рабочая группа не имеет доступа к общему ресурсу с помощью chmod 750

вы можете использовать

 sudo chmod -Rv 755 /shared

Все будущие учетные записи пользователей в users Группа имеет только разрешение на чтение и выполнение.

6. На моем клиентском компьютере один (Windows XP) я настраиваю учетную запись пользователя с именем clientone, То же имя пользователя и пароль, что и у созданного на моем сервере Ubuntu. Второй аккаунт с именем clienttwo также создается на сервере Ubuntu, и это та же учетная запись, которая используется на моем втором компьютере (linuxmint 15).

7. На моем клиентском компьютере один после входа в систему с помощью clientone аккаунт, я иду, чтобы запустить команду, затем введите

 //192.168.10.254/shared

192.168.10.254 это IP-адрес моего сервера Ubuntu, /shared является ли папка общей на моем сервере Ubuntu? На моем клиентском компьютере два (linuxmint 15) я захожу в Меню> Сеть и в диалоговом окне Местоположение: Я набрал:

 smb://192.168.10.254/shared

Если вас попросили ввести пароль, введите пароль для вашего аккаунта. А также ваш пароль для ключей, если на ваших компьютерах Linux включена функция KEYRING.

Этот работает для меня в моей собственной настройке сети. Мой сервер - это многоцелевой сервер, выполняющий роль сервера squid, сервера xbmc и mediatomb, а также сервера amahi.

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

Добавленная информация:

У меня на сервере установлен Amahi Server, я также использовал его для создания учетных записей пользователей, которым я хотел иметь доступ к общим папкам. Я также использовал его для создания новых общих папок.

Если вам нужны более сложные пользовательские разрешения для разных пользователей, вам нужно использовать ACL.

Другие вопросы по тегам