Установка прав доступа к файлам по умолчанию в общем каталоге с использованием 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) соответствуют нашим требованиям.