Файлы, сохраненные моим веб-приложением, имеют права доступа, отличные от родительских - PullRequest
0 голосов
/ 30 марта 2011

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

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

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

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

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

Однако всякий раз, когда Apache сохраняет папку / файл, он назначает ему разрешения 700 с набором пользователя и группы.пользователю apache.Это НЕ то, что я хочу.Я хочу, чтобы все файлы / подпапки в родительской папке имели права доступа 660 для себя: somegroup.

На самом деле восьмеричный флаг 660, вероятно, даже не верен.Я хочу иметь следующие разрешения:

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

Может кто-нибудь помочь, пожалуйста?

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

Ответы [ 2 ]

1 голос
/ 30 марта 2011

sudo mkdir -p / path / to / parent sudo chmod -R 660 сам: somegroup / path / to / parent

эмм - не идеально.

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

find / path / to / parent -type d -exec chmod g + s {};

И вам нужно сделать каталоги исполняемыми:

find / path / to / parent -type d -exec chmod ug + x {};

...

Однако всякий раз, когда Apache сохраняет папку / файл, он назначает ему разрешения 700 с пользователем и группой, установленными для пользователя apache

Затем вам также нужно установить umask (0770) для исполняемого кода (или напрямую изменить разрешения) и убедиться, что apache uid является членом somegroup. IIRC, чтобы установить липкий бит группы, umask должен быть 2770 - но проверьте руководство.

0 голосов
/ 30 марта 2011

Вы можете настроить apache для записи новых файлов с определенным значением umask.

Todo, поэтому в RedHat / CentOS отредактируйте файл / etc / sysconfig / httpd и измените на: umask 007

В Debian / Ubuntu используйте файл / etc / apache2 / envars с такими же настройками

...