У меня странная проблема. Есть каталог, созданный мной с разрешениями 755. Я работаю с программным обеспечением. После того, как я закончил, я сохраняю результаты своей работы в той же папке. Файлы сохраняются с разрешениями 644 (?). С помощью другой программы я создаю другие файлы, и они сохраняются с разрешениями 700.
Может кто-нибудь объяснить, что это контролирует и как это можно исправить?
Спасибо
Разрешения, установленные для файлов, контролируются пользователем, записывающим этот файл, а не каким-либо видом наследования.
Когда приложение записывает файлы, оно должно делать это как пользователь (обычно выделенный пользователь, такой как www или аналогичный). Пользователи установили значения по умолчанию для того, что мы называем "umask" в /etc/profile
и, возможно, внутри /etc/profile.d/
. В этих файлах есть глобальные настройки для всех пользователей.
Их можно переопределить для каждого пользователя, поместив файл с именем .profile
в домашнем каталоге этого пользователя со следующей строкой (настроенной по вкусу в зависимости от ваших требований):
umask 022
Если установка режимов разрешений по умолчанию для каждого пользователя нецелесообразна, вы можете выполнить наследование режима разрешений с помощью списков контроля доступа. «ACL по умолчанию», примененный к каталогу, будет определять набор разрешений по умолчанию для каждого файла или папки, созданных в этом каталоге с установленным ACL по умолчанию.
Например, вы можете отобразить списки ACL в каталоге следующим образом:
getfacl <directory>
И если вы хотите изменить ACL по умолчанию, чтобы реализовать наследование разрешений, не зависящее от пользователя, вы можете изменить ACL по умолчанию. В этой команде переключатель «-m» предназначен для включения изменений, а запись «d:» указывает, что следующий ACL должен быть наследуемым «default»:
setfacl -m d:o:rx /share
В приведенном выше случае можно было бы установить каталог / share, чтобы позволить «другим» читать и выполнять все, что создано в этом каталоге. На существующие файлы это правило не распространяется, и при необходимости их необходимо обновить.
Более подробную информацию о работе с ACL можно найти Вот.
Папка имеет маску по умолчанию 022, так что каждый сохраненный файл имеет 644 разрешения. 022 - это маска umask по умолчанию для root. по умолчанию для других пользователей обычно 02 (664). Другое приложение, вероятно, работает под другим пользователем, поэтому у него есть другие права на файлы, созданные им. Чтобы «исправить» (не совсем исправление, так как это ожидаемое поведение), вы можете изменить режим с помощью chmod.