Как установить полномочия файла так, чтобы новые файлы наследовали те же полномочия? [дубликат]

У меня есть папка, в которой новые подпапки и файлы будут созданы автоматически сценарием.

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

Это - то, что я сделал до сих пор:

sudo mkdir -p /path/to/parent
sudo chmod -R 660 myself:somegroup /path/to/parent

После этого я хочу, чтобы эти 660 полномочий были установлены рекурсивно на любые папки и файлы, помещенные в /path/to/parent.

Однако все, что я попробовал до сих пор, перестало работать. Кто-то может помочь?

На самом деле восьмеричный флаг 660 даже не, вероятно, корректен. Полномочия, которые я хочу:

  1. Каталоги, помещенные под /path/to/parent исполняемый файл пользователями с полномочиями
  2. файлы являются чтением / записываемый пользователем самостоятельно и членами somegroup
  3. Файлы и папки в /path/to/parent не читаемый мир

Я работаю на Ubuntu 10.0.4 LTS.

Кто-то может помочь?

36
задан 23.07.2014, 16:36

3 ответа

Grawity дает превосходный ответ, но я подозреваю, что отредактированный вопрос, возможно, изменил вещи немного.

Я предложил бы оставить каталог принадлежавшим апачскому пользователю/группе. Это, вероятно, будет или апачем или httpd в зависимости от Вашего распределения.

например.

chown -R apache:apache /path/to/parent

Можно затем сделать что-то как https://serverfault.com/questions/164078/is-adding-users-to-the-group-www-data-safe-on-debian или даже добавить себя к апачской группе, чтобы гарантировать, чтобы у Вас был групповой доступ к каталогу. (Что-то как usermod -aG apache username)

Я не был бы chmod -R весь каталог, потому что Вы не хотите сценарии HTML или или случайные другие вещи jpg исполняемый файл. Необходимо изменить полномочия как требуется. (хотя сброс его к 660 не может быть худшим из идей.)

Что-то, что Вы хотели бы пробовать:

chmod o+w file

'o' означает 'другой', и 'w' означает 'запись'. У Вас могут также быть 'u' для 'пользователя' и 'g' для 'группы', а также 'r' и 'x', которые являются, надо надеяться, сам объяснительные. Можно удалить полномочия с помощью '-', а не '+'.

10
ответ дан 07.12.2019, 08:55

Биты полномочий, которые Вы ищете, 0770 и 0660.

  • rw- полномочия → 110 двоичный файл → 6 восьмеричный

Владение группы может быть наследовано новыми файлами, и папки, созданные в Вашей папке,/path/to/parent путем установки setgid, укусили использование chmod g+s как это:

chmod g+s /path/to/parent

Теперь, всем новым файлам и папке, созданной под/path/to/parent, присвоят ту же группу, как установлен на/path/to/parent.


Полномочия файла POSIX не наследованы; они даны процессом создания и объединены с его текущим значением umask.

Однако можно использовать POSIX ACLs для достижения этого. Установите ACL по умолчанию на каталоге:

setfacl -d -m u::rwX,g::rwX,o::- /path/to/parent

Это будет применяться setfacl к/path/to/parent каталогу, -modifying -default ACLs – те, которые будут применены к недавно созданным объектам. (Верхний регистр X средства только каталоги получат +x бит.)

(В случае необходимости можно добавить a u:someuser:rwX или g:someuser:rwX – предпочтительно группа – к ACLs.)


Примечание: В более старых системах с помощью ext3/ext4, Вы раньше монтировали файловую систему с acl опция, иначе это проигнорировало бы весь ACLs и запретило бы устанавливающие новые.

mount -o remount,acl /

Для установки этого постоянно использовать tune2fs -o acl <device> или редактирование /etc/fstab.

62
ответ дан 07.12.2019, 08:55

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

Эти шаги должны сделать то, что Вы хотите (каталог замены в командах с каталогом, который Вы хотите использовать):

  • добавить umask 027 к апачскому сценарию значений по умолчанию /etc/default/apache. Это предотвратит другой от доступа к любым файлам, или апач каталога создает.
  • выполниться chown www-data:www-data directory на каталоге Вы хотите, чтобы апач смог записать в.
  • выполниться chmod 750 directory на каталоге Вы хотите, чтобы апач смог записать в.

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

2
ответ дан 07.12.2019, 08:55

Теги

Похожие вопросы