Установка прав доступа к файлам по умолчанию в общем каталоге с использованием ACL и umask

У нас есть Linux-бокс под управлением Ubuntu 10.04. Его основная функция - веб-сервер, и он настроен (я думаю) на обычный стек LAMP.

Разработчики имеют доступ к общему каталогу "dev", который содержит подкаталог, который служит веб-корнем. Все разработчики имеют индивидуальный доступ по SSH.

Когда разработчики создают файлы в дереве каталогов "dev" или извлекают файлы в "dev" из репозитория, мы хотим, чтобы права доступа к файлам были rwxrwxr-x. Вместо этого вновь созданные файлы имеют права доступа rw-r -r--. Изменяя ACL и устанавливая группу и идентификатор пользователя на "dev" с помощью липких битов и т. Д., Мне удалось получить вновь созданные файлы с разрешениями rw-rw-r--.

Я предполагаю, что проблема связана с конфигурацией umask, которая в настоящее время установлена ​​с использованием глобального значения 022 в /etc/profile. Я не хочу менять umask глобально или для каждого разработчика, чтобы разрешить более мягкие разрешения по умолчанию.

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

Есть ли предпочтительный или рекомендуемый подход?

Первоначально я установил gid на "dev" следующим образом.

chmod g+s dev
ls -l
drwxrwsr-x  8 755 admin 4096 Jan 19 13:24 dev

ACL по умолчанию для "dev" выглядит следующим образом.

getfacl dev

# file: dev
# owner: 755
# group: admin
# flags: -s-
user::rwx
group::rwx
other::r-x

Я применил ACL для группы "admin" (к которой принадлежат разработчики).

setfacl -Rm d:g:admin:rwX

getfacl dev

# file: dev
# owner: 755
# group: admin
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:group:admin:rwx
default:mask::rwx
default:other::r-x

Я создаю файл и проверяю права доступа к файлу.

touch dev/foo

ls -l dev

-rw-rw-r--+  1 duncmc admin    0 Jan 19 16:03 foo

На этот раз я добавляю ACL для моего пользователя "duncmc"

setfacl -Rm u:duncmc:rwX dev

getfacl dev
# file: dev
# owner: 755
# group: admin
# flags: -s-
user::rwx
user:duncmc:rwx
group::rwx
mask::rwx
other::r-x
default:user::rwx
default:group::rwx
default:group:admin:rwx
default:mask::rwx
default:other::r-x

Я создаю новый файл и проверяю разрешения.

touch dev/bar

ls -l dev

-rw-rw-r--+  1 duncmc admin    0 Jan 19 16:07 bar
-rw-rwxr--+  1 duncmc admin    0 Jan 19 16:03 foo

Добавление ACL для моего пользователя, похоже, изменило разрешение группы (было rw - теперь rwx) для существующего файла "foo". Вновь созданный файл унаследовал разные разрешения. Это не имеет смысла для меня и предполагает, что есть что-то фундаментальное в том, как это работает, что я не понимаю.

1 ответ

Оказывается, что права доступа к файлу rw-rw-r-- (или 644) соответствуют нашим требованиям.

Другие вопросы по тегам