Самый легкий способ управлять этим со списками управления доступом. Они позволяют полномочиям быть установленными для стольких пользователей и групп, сколько Вы хотите, не всего один пользователь и одна группа как основные полномочия Unix.
ACLs должен быть включен в файловой системе. С расширением [234] или reiserfs, необходимо передать acl
смонтируйте опцию. Также удостоверьтесь, что у Вас есть установленные утилиты ACL (acl
пакет на Debian или Ubuntu).
Установите ACL, который позволяет обоим пользователям получать доступ к файлам и устанавливать соответствующий ACL по умолчанию на каталогах (ACL по умолчанию наследован файлами, созданными в каталоге).
setfacl -m user:www-data:rwx -m user:svnuser:rwx -R /path/to/directory/tree
setfacl-d -m user:www-data:rwx -m user:svnuser:rwx -R /path/to/directory/tree
Можно установить различные полномочия, если Вам нравится. Исполняемый бит будет проигнорирован, если файл не будет сделан исполняемым файлом через полномочия не-ACL (те, Вы устанавливаете с chmod
).
Данные команды для Linux. Много других вариантов Unix поддерживают ACLs, но точный набор доступных полномочий и утилиты для установки их не стандартизирован.
Можно использовать группы для управления доступом, если Вы хотите. Даже если Вы делаете, ACL имеют преимущество, что Вы не столкнетесь с проблемой umask: если Вы просто создаете группу, необходимо удостовериться, что все файлы и каталоги перезаписываемы группой, что означает, что необходимо удостовериться, что любой процесс, создающий файл, имеет umask 002 или 007, который в свою очередь может заставить полномочия в другом месте быть более либеральными. Таким образом, даже при создании группы ACLs полезны.
setfacl -m group:mygroup:rwx -R /path/to/directory/tree
setfacl -d -m group:mygroup:rwx -R /path/to/directory/tree
Обратите внимание, что я не даю гарантии относительно пригодности этой модели обеспечения безопасности к Вашему варианту использования. Я просто обеспечиваю реализацию.
cd
не изменяет umask. Любой Вы перегрузились cd
, или Вы имеете пред - или поступравляете рычагом.
Проверьте это cd
не был перегружен путем выполнения type cd
. Это покажет Вам, является ли это “оболочкой встроенная” (польза) или псевдоним или (подозрительная) функция.
Выполненный echo "$PROMPT_COMMAND"
видеть, есть ли у Вас рычаг посткоманды (удар оценивает значение этой переменной прежде, чем отобразить каждую подсказку). Также проверьте на прерывание отладки, которое выполняется перед каждой командой с trap -p DEBUG
.