Как настроить папку так, чтобы все, что в ней создавалось, наследовало разрешения?
У меня есть папка /data (фактически раздел) для всех данных, которые должны быть доступны всем пользователям (в данном случае членам семьи). У всех нас есть индивидуальные учетные записи пользователей, и все они часто подключаются в любое время на этом компьютере.
Как я могу настроить разрешения, чтобы у всех нас был доступ к файлам, независимо от того, кто их создает, включая новые папки? Если я создаю папку, она получает моего пользователя и группу, поэтому никто другой не может писать в нее.
7 ответов
Другой подход заключается в использовании списков контроля доступа, расширенного набора прав доступа к файлам.
Прежде всего, мы должны установить 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,
Сделать папку.
Например:
mkdir /mnt/familyЕсли вам нужно смонтировать раздел к ним... если ext4 все, что вам нужно в
/etc/fstabявляетсяUUID=xxx /mnt/family ext4 **rw,exec,defaults,auto,async 0 2**Создать группу myfam.
addgroup myfamДобавьте некоторых пользователей в эту группу
adduser papa myfam adduser mom myfamТеперь возьми и дай разрешение.
Я думаю, что вы должны начать с изменения
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.