Разное программное обеспечение сохраняет файлы с разными правами доступа

У меня странная проблема. Я создал каталог с разрешениями 755. Я работаю с программным обеспечением. После этого я сохраняю результаты своей работы в той же папке. Файлы сохраняются с разрешениями 644 (?). С другой программой я создаю другие файлы, и они сохраняются с разрешениями 700.

Может кто-нибудь объяснить, что контролирует это, и как это можно исправить?

Спасибо

2 ответа

Папка имеет значение по умолчанию 022, поэтому каждый сохраненный файл имеет 644 разрешения. 022 - это маска по умолчанию для root. по умолчанию для других пользователей обычно 02 (664). Возможно, другое приложение выполняется под другим пользователем, поэтому у него есть другие права доступа для созданных им файлов. Чтобы "исправить" (не совсем исправление, так как это ожидаемое поведение), вы можете изменить режим с помощью chmod.

Разрешения, установленные для файлов, контролируются пользователем, пишущим этот файл, а не каким-либо наследованием.

Когда приложение пишет файлы, оно должно делать это как пользователь (обычно выделенный пользователь, такой как "www" или аналогичный). Пользователи установили значения по умолчанию для того, что мы называем "umask" в /etc/profile и, возможно, в /etc/profile.d/, В этих файлах находятся глобальные настройки для всех пользователей.

Они могут быть переопределены для каждого пользователя, поместив файл с именем .profile в домашнем каталоге этого пользователя со следующей строкой (настроенной по вкусу в зависимости от ваших требований):

Umask 022

Если установка режимов разрешений по умолчанию для каждого пользователя нецелесообразна, вы можете выполнить наследование режимов разрешений с помощью списков ACL. "ACL по умолчанию", примененный к каталогу, будет определять набор разрешений по умолчанию для каждого файла или папки, созданной в этом каталоге с набором ACL по умолчанию.

Например, вы можете отобразить списки ACL в каталоге следующим образом:

getfacl <directory>

И если вы хотите изменить ACL по умолчанию для реализации независимого от пользователя наследования разрешений, вы можете изменить ACL по умолчанию. В этой команде ключ "-m" предназначен для включения изменений, а запись "d:" указывает, что следующий ACL должен быть наследуемым "по умолчанию":

setfacl -m d:o:rx /share

В приведенном выше случае можно было бы установить каталог / share, чтобы "другие" могли читать и выполнять все, что создано в этом каталоге. Это правило не влияет на существующие файлы, и при необходимости его необходимо обновить.

Более подробную информацию о работе с ACL можно найти здесь.

Другие вопросы по тегам