Мне назвали каталог data
. Затем я запускаю скрипт под идентификатором пользователя 'робот'. робот пишет в data
каталог и файлы обновления внутри. Идея data
открыто и для меня и для робота для обновления.
Таким образом, я устанавливаю разрешение и группу владельца как это
drwxrwxr-x 2 me robot-grp 4096 Jun 11 20:50 data
где и меня и робот принадлежит 'группе робота'. Я изменяю разрешение и группу владельца рекурсивно как родительский каталог.
Я регулярно загружаю новые файлы в data
использование каталога rsync
. К сожалению, новые загруженные файлы не наследовали разрешение родительского каталога, как я надеюсь. Вместо этого это похоже на это
-rw-r--r-- 1 me users 6 Jun 11 20:50 new-file.txt
Когда робот пытается обновить new-file.txt
, это перестало работать из-за отсутствия разрешения файла.
Я не уверен, если установка umask помогает. В anycase новые файлы действительно не следует за ним.
$ umask -S
u=rwx,g=rx,o=rx
Я часто соединяюсь разрешением файла Unix. У меня даже есть правильный план? Я использую Debian lenny.
Вы не хотите изменять значение по умолчанию своей системы umask, который является угрозой безопасности. Липкая разрядная опция будет работать в некоторой степени, но использование ACL является лучшим способом пойти. Это легче, чем Вы думаете. Проблема с основным ACL состоит в том, что они не являются рекурсивными по умолчанию. При установке ACL на каталоге только файлы в том каталоге наследовали ACL. При создании подкаталога это не получает родительский ACL, если ACL не установлен рекурсивно вызвать.
Во-первых, удостоверьтесь, что ACLs включены для объема, каталог идет. Если Вы имеете tune2fs
, можно выполнить следующее:
# tune2fs -l /dev/sda1 | grep acl
Default mount options: user_xattr acl
Если Вы не имеете tune2fs
, затем исследуйте fstabs
:
# cat /etc/fstab
/dev/system/root / ext3 defaults 1 1
/dev/system/home /home ext3 defaults 1 2
/dev/storage/data /data ext3 defaults 1 2
LABEL=/boot /boot ext3 defaults 1 2
4-й столбец, в котором говорятся средства "значений по умолчанию" относительно моей системы (CentOS 5.5), ACL, идет. Когда в сомнении, оставьте его как значения по умолчанию. При попытке установить ACL и это ошибки, возвратитесь и добавьте acl опцию к/etc/fstab праву после значений по умолчанию: defaults,acl
.
Из того, что я понимаю, Вы хотите, чтобы у всех в группе пользователей был доступ для записи к каталогу данных. Это выполняется следующим:
setfacl -Rm g:users:rwX,d:g:users:rwX data/
Отмечание каталога setgid (g+s
) заставит новые файлы наследовать владение группы каталога, но -g
опция rsync попытается переопределить это.
Ваш umask является неправильным при полномочиях, которые Вы хотите. Вы хотите umask 002. У Вас в настоящее время есть umask 022. Кроме того, комментарий о создании каталога setgid корректен, но я не уверен, является ли владение группы файлов чем-то, что Вы хотите изменить или нет.
Полномочия файла Unix являются на самом деле очень простой моделью. Я нахожу ACLs абсолютно сбивающий с толку сам.:-)