Соответствующая папка перезаписывается каждые пару дней, но я хочу, чтобы ее содержимое сохранило 755 разрешений. я пробовал chmod g+s dir
но безрезультатно. Это вообще возможно?
Если вас устраивает дополнительное программное обеспечение и вам не нужны подпапки, вы можете запустить команду для изменения разрешений (например, chmod 755), когда файлы добавляются в папку с Incron. Вам нужно будет установить incron, добавить себя в список разрешенных пользователей (добавив себя в /etc/incron.allow)
Затем вы должны создать запись incrontab с помощью incrontab -e
, затем добавив строку вроде /path/to/directory_to_monitor IN_MODIFY chmod 755
к нему. Если вы хотите глубже изучить возможности incron, посмотрите справочную страницу или это руководство по Howtoforge.
Это, вероятно, не очень элегантно (поскольку он отслеживает изменения файлов), но правильно настроенный, должен автоматически изменять разрешения файлов на то, что вы хотите.
Вы не можете сделать это с моделью разрешений posix; для этого просто нет положения. Соответствующее положение (setuid и setgid для каталогов) позволяет наследовать право собственности на один уровень, но не разрешения.
Вам следует рассмотреть возможность использования ACL, если вам нужна эта функция, поскольку жестяная банка должны быть унаследованы (во всяком случае, во время создания файла), но это требует некоторого размышления о вашей структуре разрешений. Предполагая, что у вас есть поддержка POSIX ACL в вашей системе и в вашей файловой системе, ACL, который вы хотите установить для каталога, будет чем-то вроде d:u::7,d:g::5,d:o::5
(это заставляет ACL работать с UID и GID, которым принадлежит файл; если вам нужно наследовать и это, сделайте каталог suid и sgid). Списки управления доступом по умолчанию для каталогов применяются к новым файлам и каталогам, созданным в них, поэтому, хотя это не совсем способ создания разрешений для файлов 0755, он, вероятно, сделает то, что вам нужно.
ACL требует некоторого обучения, и они являются одной из наиболее сложных (и очень редко используемых) функций в POSIX. Прочтите руководства: man 5 acl
и man 1 setfacl
. Не пытайтесь использовать ACL для чего-либо, пока не поймете, как они работают.
Еще одна вещь, на которую следует обратить внимание, в зависимости от того, как записывается содержимое каталога, - это указать в программе, которая их записывает, разрешения; это будет зависеть от umask, но это единственный способ добиться желаемых разрешений буквальным способом, которым вы хотите это сделать. Многие программы имеют параметры, которые вы можете указать для этого, или вы можете установить желаемую umask в оболочке, запускающей программу, создающую файлы (вы можете сделать это, не затрагивая системную umask).