У нас есть 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». Вновь созданный файл унаследовал разные разрешения. Для меня это не имеет смысла и предполагает, что в том, как это работает, есть что-то фундаментальное, чего я не понимаю.
Оказывается, права доступа к файлам rw-rw-r-- (или 644) соответствуют нашим требованиям.