У меня проблема с разрешениями на сервере Linux. Я привык к BSD. Если каталог принадлежит группе, в которой находится пользователь, которому он принадлежит, например, www-данные, созданные в нем файлы будут принадлежать этой группе. Это важно, потому что я хочу, чтобы файлы были доступны для чтения веб-серверу (который я не буду запускать от имени пользователя root), но пользователь все еще может помещать новые файлы в каталог. Я не могу поместить пользователей в www-данные, потому что тогда они могут читать сайты других пользователей.
Я хочу, чтобы веб-сервер читал все сайты, я хочу, чтобы пользователи могли изменять свои собственные.
В настоящий момент права доступа к папкам установлены следующим образом ...
drwxr-x--- 3 john www-data 4096 Feb 17 21:27 john
Это стандартное поведение на BSD для разрешений для работы таким образом. Как мне заставить Linux сделать это?
источник
Ответы:
Похоже, вы описываете функциональность бита setgid, когда когда каталог, в котором он установлен, заставит любые новые файлы, созданные в нем, установить свою группу в ту же группу, которая установлена в родительском каталоге.
пример
настроить каталог с перми + владения
коснитесь файла как saml в этом каталоге
Это даст вам примерно то, что звучит так, как вы хотите. Если вы действительно хотите именно то, что вы описали, я думаю, вам придется прибегнуть к функциональности списков контроля доступа, чтобы получить это (ACL).
списки управления доступом
Если вы хотите получить немного больший контроль над разрешениями для файлов, которые создаются в каталоге
somedir
, вы можете добавить следующее правило ACL, чтобы установить разрешения по умолчанию следующим образом.до
установить разрешения
Обратите внимание
+
на в конце, это означает, что к этому каталогу применены ACL.после
Обратите внимание, что по умолчанию permissions (
setfacl -Rdm
) установлены так, что permissions (r-x
) по умолчанию (g:apache:rx
). Это заставляет любые новые файлы иметь только свойr
бит включен.источник
unzip
?unzip
. В частности,-X
переключатель.TL: DR; чтобы новые файлы наследовали группу папки контейнера, выполните:
Примечание: это подразумевается в принятом ответе, это всего лишь фрагмент.
источник
В дополнение к ответу slm обратите внимание, что в файловой системе ext2 / 3/4 вы можете реплицировать описанное вами поведение BSD, используя
bsdgroups
опцию mount в разделе. Соmount(1)
страницы руководства :источник