По некоторым очевидным причинам мне нужно установить значение umask для одной конкретной папки. Как это можно сделать?
Спасибо заранее!
UPDATE 1
Причина, по которой мне нужно использовать umask для конкретной папки, следующая. У меня есть веб-приложение, и когда он создает некоторый файл, разрешение по умолчанию - 700. Но для этого файла мне требуется как минимум 755 разрешений. Думаю, теперь я могу объяснить проблему более четко.
Другим решением может быть просто установить идентификатор группы на файлы, созданные в каталоге, что делает новые файлы, принадлежащие идентификатору группы каталогов, вместо идентификатора группы пользователя, создавшего файлы. Поэтому я думаю, что вы могли бы просто сделать:
chown www-data:www-data /my/folder
chmod 4755 /my/folder
Это устанавливает специальное разрешение для файла setgid, которое приведет к созданию всех файлов, созданных в /my/folder, принадлежащих группе www-data, которая имеет разрешение rx (5) из-за родительского каталога.
вы можете использовать setfacl
setfacl -d -m group:name:rwx /path/to/your/dir
Где name - имя группы
Чтобы узнать, какие группы вы или какой-либо конкретный пользователь видите в Unix / linux, вы узнаете, какая группа данного пользователя находится через командную строку?
Вы не можете установить umask для каталога, это значение уровня процесса. Если вам нужно запретить другим читать файлы в каталоге, отмените соответствующие биты разрешений.
Например, если у вас есть каталог /home/user/directory с некоторыми файлами и каталогами, которые могут получать разрешения, такие как 777 из процесс, установите биты разрешения /home/user/directory примерно на 700. Это сделает невозможным слияние других пользователей (исключая корень суперпользователя) в /home/user/directory.
Я параноик и настроен разрешения на /home/user до 750, поэтому я могу читать, писать и спускаться в своем домашнем каталоге. Это приводит к тому, что папки, подобные /home/user/Public, не могут быть доступны другим, но я могу жить с этим.
За обновление вашего вопроса: все же вы не можете контролировать это в файловой системы (кроме использования другого типа файловой системы, такого как FAT, который сильно запрещен), вам нужно сделать это в своем веб-приложении. Если ваш webapp закодирован в PHP, вы можете изменить umask на лету, используя функцию umask:
<?php
umask(0022);
// other code
?>
Вы можете поместить это в файл конфигурации, например файл, содержащий пароль для подключения к базе данных (мышление в таких приложениях, как Wordpress).
Помните, что это значение процесса, некоторые веб-серверы позволяют вам устанавливать его в свои файлы конфигурации, иначе вы можете изменить сценарии запуска, чтобы установить желаемый umask. Помните, что разрешения, подобные 755 и 644, весьма опасны для webapps, если код чувствителен, каждый может его прочитать.
Чтобы изменить разрешения для папки, используйте chmod. umask для файлов.
Установите umask на то, что вам нужно
umask xxx
, и измените его, когда вы сделали
umask 022
Другим решением может быть просто установить идентификатор группы на файлы, созданные в каталоге, что делает новые файлы, принадлежащие идентификатору группы каталогов, вместо идентификатора группы пользователя, создавшего файлы. Поэтому я думаю, что вы могли бы просто сделать:
chown www-data:www-data /my/folder
chmod 4755 /my/folder
Это устанавливает специальное разрешение для файла setgid, которое приведет к созданию всех файлов, созданных в /my/folder, принадлежащих группе www-data, которая имеет разрешение rx (5) из-за родительского каталога.
вы можете использовать setfacl
setfacl -d -m group:name:rwx /path/to/your/dir
Где name - имя группы
Чтобы узнать, какие группы вы или какой-либо конкретный пользователь видите в Unix / linux, вы узнаете, какая группа данного пользователя находится через командную строку?
Вы не можете установить umask для каталога, это значение уровня процесса. Если вам нужно запретить другим читать файлы в каталоге, отмените соответствующие биты разрешений.
Например, если у вас есть каталог /home/user/directory с некоторыми файлами и каталогами, которые могут получать разрешения, такие как 777 из процесс, установите биты разрешения /home/user/directory примерно на 700. Это сделает невозможным слияние других пользователей (исключая корень суперпользователя) в /home/user/directory.
Я параноик и настроен разрешения на /home/user до 750, поэтому я могу читать, писать и спускаться в своем домашнем каталоге. Это приводит к тому, что папки, подобные /home/user/Public, не могут быть доступны другим, но я могу жить с этим.
За обновление вашего вопроса: все же вы не можете контролировать это в файловой системы (кроме использования другого типа файловой системы, такого как FAT, который сильно запрещен), вам нужно сделать это в своем веб-приложении. Если ваш webapp закодирован в PHP, вы можете изменить umask на лету, используя функцию umask:
<?php
umask(0022);
// other code
?>
Вы можете поместить это в файл конфигурации, например файл, содержащий пароль для подключения к базе данных (мышление в таких приложениях, как Wordpress).
Помните, что это значение процесса, некоторые веб-серверы позволяют вам устанавливать его в свои файлы конфигурации, иначе вы можете изменить сценарии запуска, чтобы установить желаемый umask. Помните, что разрешения, подобные 755 и 644, весьма опасны для webapps, если код чувствителен, каждый может его прочитать.
Чтобы изменить разрешения для папки, используйте chmod. umask для файлов.
Установите umask на то, что вам нужно
umask xxx
, и измените его, когда вы сделали
umask 022
Другим решением может быть просто установить идентификатор группы на файлы, созданные в каталоге, что делает новые файлы, принадлежащие идентификатору группы каталогов, вместо идентификатора группы пользователя, создавшего файлы. Поэтому я думаю, что вы могли бы просто сделать:
chown www-data:www-data /my/folder
chmod 4755 /my/folder
Это устанавливает специальное разрешение для файла setgid, которое приведет к созданию всех файлов, созданных в /my/folder, принадлежащих группе www-data, которая имеет разрешение rx (5) из-за родительского каталога.
вы можете использовать setfacl
setfacl -d -m group:name:rwx /path/to/your/dir
Где name - имя группы
Чтобы узнать, какие группы вы или какой-либо конкретный пользователь видите в Unix / linux, вы узнаете, какая группа данного пользователя находится через командную строку?
Вы не можете установить umask для каталога, это значение уровня процесса. Если вам нужно запретить другим читать файлы в каталоге, отмените соответствующие биты разрешений.
Например, если у вас есть каталог /home/user/directory с некоторыми файлами и каталогами, которые могут получать разрешения, такие как 777 из процесс, установите биты разрешения /home/user/directory примерно на 700. Это сделает невозможным слияние других пользователей (исключая корень суперпользователя) в /home/user/directory.
Я параноик и настроен разрешения на /home/user до 750, поэтому я могу читать, писать и спускаться в своем домашнем каталоге. Это приводит к тому, что папки, подобные /home/user/Public, не могут быть доступны другим, но я могу жить с этим.
За обновление вашего вопроса: все же вы не можете контролировать это в файловой системы (кроме использования другого типа файловой системы, такого как FAT, который сильно запрещен), вам нужно сделать это в своем веб-приложении. Если ваш webapp закодирован в PHP, вы можете изменить umask на лету, используя функцию umask:
<?php
umask(0022);
// other code
?>
Вы можете поместить это в файл конфигурации, например файл, содержащий пароль для подключения к базе данных (мышление в таких приложениях, как Wordpress).
Помните, что это значение процесса, некоторые веб-серверы позволяют вам устанавливать его в свои файлы конфигурации, иначе вы можете изменить сценарии запуска, чтобы установить желаемый umask. Помните, что разрешения, подобные 755 и 644, весьма опасны для webapps, если код чувствителен, каждый может его прочитать.
Чтобы изменить разрешения для папки, используйте chmod. umask для файлов.
Установите umask на то, что вам нужно
umask xxx
, и измените его, когда вы сделали
umask 022
Другим решением может быть просто установить идентификатор группы на файлы, созданные в каталоге, что делает новые файлы, принадлежащие идентификатору группы каталогов, вместо идентификатора группы пользователя, создавшего файлы. Поэтому я думаю, что вы могли бы просто сделать:
chown www-data:www-data /my/folder
chmod 4755 /my/folder
Это устанавливает специальное разрешение для файла setgid, которое приведет к созданию всех файлов, созданных в /my/folder, принадлежащих группе www-data, которая имеет разрешение rx (5) из-за родительского каталога.
вы можете использовать setfacl
setfacl -d -m group:name:rwx /path/to/your/dir
Где name - имя группы
Чтобы узнать, какие группы вы или какой-либо конкретный пользователь видите в Unix / linux, вы узнаете, какая группа данного пользователя находится через командную строку?
Вы не можете установить umask для каталога, это значение уровня процесса. Если вам нужно запретить другим читать файлы в каталоге, отмените соответствующие биты разрешений.
Например, если у вас есть каталог /home/user/directory с некоторыми файлами и каталогами, которые могут получать разрешения, такие как 777 из процесс, установите биты разрешения /home/user/directory примерно на 700. Это сделает невозможным слияние других пользователей (исключая корень суперпользователя) в /home/user/directory.
Я параноик и настроен разрешения на /home/user до 750, поэтому я могу читать, писать и спускаться в своем домашнем каталоге. Это приводит к тому, что папки, подобные /home/user/Public, не могут быть доступны другим, но я могу жить с этим.
За обновление вашего вопроса: все же вы не можете контролировать это в файловой системы (кроме использования другого типа файловой системы, такого как FAT, который сильно запрещен), вам нужно сделать это в своем веб-приложении. Если ваш webapp закодирован в PHP, вы можете изменить umask на лету, используя функцию umask:
<?php
umask(0022);
// other code
?>
Вы можете поместить это в файл конфигурации, например файл, содержащий пароль для подключения к базе данных (мышление в таких приложениях, как Wordpress).
Помните, что это значение процесса, некоторые веб-серверы позволяют вам устанавливать его в свои файлы конфигурации, иначе вы можете изменить сценарии запуска, чтобы установить желаемый umask. Помните, что разрешения, подобные 755 и 644, весьма опасны для webapps, если код чувствителен, каждый может его прочитать.
Чтобы изменить разрешения для папки, используйте chmod. umask для файлов.
Установите umask на то, что вам нужно
umask xxx
, и измените его, когда вы сделали
umask 022
Вы не можете установить umask для каталога, это значение уровня процесса. Если вам нужно запретить другим пользователям читать файлы в каталоге, отмените соответствующие биты разрешений.
Например, если у вас есть каталог / home / user / directory
с некоторыми файлы и каталоги, которые могут получать разрешения, такие как 777, из процесса, устанавливают биты разрешения / home / user / directory
примерно на 700. Это сделает невозможным для других пользователей (исключая корень суперпользователя)
Я параноик и устанавливаю разрешения на / home / user
до 750, поэтому только я может читать, писать и опускаться в моем домашнем каталоге. Это приводит к тому, что другие папки, такие как / home / user / Public
, недоступны другим, но я могу с этим жить.
За обновление вашего вопроса: по-прежнему , вы не можете контролировать это в файловой системе (кроме использования другого типа файловой системы, такого как FAT, который сильно обескуражен), вам нужно сделать это в своем веб-приложении. Если ваш webapp закодирован в PHP, вы можете изменить umask на лету, используя функцию umask :
& lt;? Php umask (0022); // другой код? & gt;
Вы можете поместить это в файл конфигурации, например, файл, содержащий пароль для подключения к базе данных (мышление в таких приложениях, как Wordpress).
Помните, что это значение процесса, некоторые веб-серверы позволяют вам устанавливать его в своих конфигурационных файлах, иначе вы можете изменить сценарии запуска, чтобы установить желаемый umask. Помните, что разрешения, такие как 755
и 644
, весьма опасны для webapps, если код чувствителен, каждый может его прочитать.
Чтобы изменить разрешения для папки, используйте chmod. umask для файлов.
Установите umask на то, что вам нужно
umask xxx
, и измените его, когда вы сделали
umask 022
вы можете использовать setfacl
setfacl -d -m group: name: rwx / path / to / your / dir
Где имя
- это имя группы
Чтобы узнать, какие группы вы или какой-либо конкретный пользователь, см. В unix / linux, как вы узнаете, какая группа задана пользователь находится через командную строку?
Другим решением может быть просто установить идентификатор группы на файлы, созданные в каталоге, что делает новые файлы, принадлежащие идентификатору группы каталогов, вместо идентификатора группы пользователя, создавшего файлы. Поэтому я думаю, что вы могли бы просто сделать:
chown www-data: www-data / my / folder
chmod 4755 / my / folder
Это устанавливает специальное разрешение на установление setgid, которое приведет к тому, что все файлы, созданные в / my / folder
, будут принадлежать www-data
, которая затем имеет разрешение rx (5) из-за родительского каталога.
вы можете использовать setfacl
setfacl -d -m group: name: rwx / path / to / your / dir
Где имя
- это имя группы
Чтобы узнать, какие группы вы или какой-либо конкретный пользователь, см. В unix / linux, как вы узнаете, какая группа задана пользователь находится через командную строку?
Вы не можете установить umask для каталога, это значение уровня процесса. Если вам нужно запретить другим пользователям читать файлы в каталоге, отмените соответствующие биты разрешений.
Например, если у вас есть каталог / home / user / directory
с некоторыми файлы и каталоги, которые могут получать разрешения, такие как 777, из процесса, устанавливают биты разрешения / home / user / directory
примерно на 700. Это сделает невозможным для других пользователей (исключая корень суперпользователя)
Я параноик и устанавливаю разрешения на / home / user
до 750, поэтому только я может читать, писать и опускаться в моем домашнем каталоге. Это приводит к тому, что другие папки, такие как / home / user / Public
, недоступны другим, но я могу с этим жить.
За обновление вашего вопроса: по-прежнему , вы не можете контролировать это в файловой системе (кроме использования другого типа файловой системы, такого как FAT, который сильно обескуражен), вам нужно сделать это в своем веб-приложении. Если ваш webapp закодирован в PHP, вы можете изменить umask на лету, используя функцию umask :
& lt;? Php umask (0022); // другой код? & gt;
Вы можете поместить это в файл конфигурации, например, файл, содержащий пароль для подключения к базе данных (мышление в таких приложениях, как Wordpress).
Помните, что это значение процесса, некоторые веб-серверы позволяют вам устанавливать его в своих конфигурационных файлах, иначе вы можете изменить сценарии запуска, чтобы установить желаемый umask. Помните, что разрешения, такие как 755
и 644
, весьма опасны для webapps, если код чувствителен, каждый может его прочитать.
Чтобы изменить разрешения для папки, используйте chmod. umask для файлов.
Установите umask на то, что вам нужно
umask xxx
, и измените его, когда вы сделали
umask 022
Другим решением может быть просто установить идентификатор группы на файлы, созданные в каталоге, что делает новые файлы, принадлежащие идентификатору группы каталогов, вместо идентификатора группы пользователя, создавшего файлы. Поэтому я думаю, что вы могли бы просто сделать:
chown www-data: www-data / my / folder
chmod 4755 / my / folder
Это устанавливает специальное разрешение на установление setgid, которое приведет к тому, что все файлы, созданные в / my / folder
, будут принадлежать www-data
, которая затем имеет разрешение rx (5) из-за родительского каталога.
Чтобы изменить разрешения для папки, используйте chmod. umask для файлов.
Установите umask на то, что вам нужно
umask xxx
, и измените его, когда вы сделали
umask 022
umask
). Извините за добавление запутанной информации.
– htorque
23 May 2011 в 01:54
вы можете использовать setfacl
setfacl -d -m group: name: rwx / path / to / your / dir
Где имя
- это имя группы
Чтобы узнать, какие группы вы или какой-либо конкретный пользователь, см. В unix / linux, как вы узнаете, какая группа задана пользователь находится через командную строку?
setfacl
изменился. Я получаю сообщение об ошибке, указывающее, что -m
не является допустимым вариантом.
– Ryan Burnette
10 January 2015 в 23:51
setfacl
не изменяется. Скорее всего, вы не указали правильное название группы (после -m
).
– sergk
4 February 2015 в 07:10
setfacl
для списков управления доступом i>, а не umask
. Лучшее решение, но не то, что было задано, я не думаю.
– Wyatt8740
11 February 2016 в 04:05
Вы не можете установить umask для каталога, это значение уровня процесса. Если вам нужно запретить другим пользователям читать файлы в каталоге, отмените соответствующие биты разрешений.
Например, если у вас есть каталог / home / user / directory
с некоторыми файлы и каталоги, которые могут получать разрешения, такие как 777, из процесса, устанавливают биты разрешения / home / user / directory
примерно на 700. Это сделает невозможным для других пользователей (исключая корень суперпользователя)
Я параноик и устанавливаю разрешения на / home / user
до 750, поэтому только я может читать, писать и опускаться в моем домашнем каталоге. Это приводит к тому, что другие папки, такие как / home / user / Public
, недоступны другим, но я могу с этим жить.
За обновление вашего вопроса: по-прежнему , вы не можете контролировать это в файловой системе (кроме использования другого типа файловой системы, такого как FAT, который сильно обескуражен), вам нужно сделать это в своем веб-приложении. Если ваш webapp закодирован в PHP, вы можете изменить umask на лету, используя функцию umask :
& lt;? Php umask (0022); // другой код? & gt;
Вы можете поместить это в файл конфигурации, например, файл, содержащий пароль для подключения к базе данных (мышление в таких приложениях, как Wordpress).
Помните, что это значение процесса, некоторые веб-серверы позволяют вам устанавливать его в своих конфигурационных файлах, иначе вы можете изменить сценарии запуска, чтобы установить желаемый umask. Помните, что разрешения, такие как 755
и 644
, весьма опасны для webapps, если код чувствителен, каждый может его прочитать.
/ home / user / Public
( mount -o bind / home / user / Public / some / other / place
), чтобы обойти проблему разрешений родительского каталога.
– Adrian Günter
8 May 2018 в 18:52
Другим решением может быть просто установить идентификатор группы на файлы, созданные в каталоге, что делает новые файлы, принадлежащие идентификатору группы каталогов, вместо идентификатора группы пользователя, создавшего файлы. Поэтому я думаю, что вы могли бы просто сделать:
chown www-data: www-data / my / folder
chmod 4755 / my / folder
Это устанавливает специальное разрешение на установление setgid, которое приведет к тому, что все файлы, созданные в / my / folder
, будут принадлежать www-data
, которая затем имеет разрешение rx (5) из-за родительского каталога.