У меня есть папка, в которой новые подпапки и файлы будут созданы автоматически сценарием.
Я хочу поддержать пользователя и полномочия группы рекурсивно для всех новых папок и файлов, помещенных в родительский каталог. Я знаю, что это включает установку липкого бита, но я, может казаться, не нахожу команду, которая показывает точно, в чем я нуждаюсь.
Это - то, что я сделал до сих пор:
sudo mkdir -p /path/to/parent
sudo chmod -R 660 myself:somegroup /path/to/parent
После этого я хочу, чтобы эти 660 полномочий были установлены рекурсивно на любые папки и файлы, помещенные в /path/to/parent
.
Однако все, что я попробовал до сих пор, перестало работать. Кто-то может помочь?
На самом деле восьмеричный флаг 660 даже не, вероятно, корректен. Полномочия, которые я хочу:
/path/to/parent
исполняемый файл пользователями с полномочиями/path/to/parent
не читаемый мирЯ работаю на Ubuntu 10.0.4 LTS.
Кто-то может помочь?
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', которые являются, надо надеяться, сам объяснительные. Можно удалить полномочия с помощью '-', а не '+'.
Биты полномочий, которые Вы ищете, 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 каталогу, -m
odifying -d
efault 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
.
Я думаю, что Вы по усложнению проблемы. Если высокоуровневый каталог не будет доступен для других, то другие не смогут создать файлы в дереве. Доступ для записи группы не требуется, если только апач делает записи.
Эти шаги должны сделать то, что Вы хотите (каталог замены в командах с каталогом, который Вы хотите использовать):
umask 027
к апачскому сценарию значений по умолчанию /etc/default/apache
. Это предотвратит другой от доступа к любым файлам, или апач каталога создает.chown www-data:www-data directory
на каталоге Вы хотите, чтобы апач смог записать в. chmod 750 directory
на каталоге Вы хотите, чтобы апач смог записать в.Разрешение апачу записать в каталог открывает способность ввести весь вид вредоносного программного обеспечения к содержанию, которому Вы служите. Контролируйте содержание этого дерева каталогов соответственно.