Есть несколько способов добиться того, что вы описываете, используя оболочку, но все зависит от того, что вы ищете, и какой уровень доступа у вас к рассматриваемым папкам и доступ к оболочке.
Как я понимаю, вы хотите изменить поведение сервера относительно этих новых сгенерированных файлов. Но это зависит от пользователя, выполняющего скрипт или приложение, от их отношения к пользователю оболочки или ftp ... факт в том, что мы действительно знаем о вашей проблеме, еще не завершена.
Вы можете, например, передать право владения папкой пользователю приложения, но это может создать проблемы с пользователем оболочки или пользователем ftp, если они не совпадают.
Для этого вы можете использовать:
chown -R user:group /[path-to]/myfolder
где [path-to]
должен быть изменен на путь к папке, а myfolder - на фактическую папку на машине, пользователь и группа должны быть соответственно изменены на пользователя и группу пользователя, который запускает приложение или скрипт. Если ваша папка была, например, "app" и находится на /var /www / path на удаленной машине, и приложение запускается пользователем www-data, тогда это должно быть
chown -R www-data:www-data /var/www/app
Но, как я уже сказал, мы мало что знаем о специфике. Таким образом, возможно, проблема вызвана строгой политикой администратора сервера, где umask что-то вроде:
umask 333
или даже худший umask 377
где получающиеся разрешения - что-то вроде r - r - r-- или r --------, но чтобы справиться с ними, вы можете добавить временный umask в свое приложение или установить его в env для пользователя приложения ... но я действительно думаю, что это действительно невозможно, (скажите мне, если вам нужно что-то подобное, чтобы расширить эту опцию)
Другой способ - не предоставить полностью право владения пользователю приложения, а использовать группу, к которой принадлежит пользователь приложения, и активировать флаг s, чтобы разрешить автоматическое создание каждого файла в каталоге со специальными разрешениями для группы.
сначала измените групповое владение папкой, например:
chown -R sameuser:newgroup /[path-to]/myfolder
затем измените бит sgid в папке
chmod g+s /[path-to]/myfolder
больше о sgid на http://www.linuxnix.com/sgid-set-sgid-linuxunix/
SGID (установка идентификатора группы при выполнении) - это особый тип прав доступа к файлу, который предоставляется файлу / папке. Обычно в Linux / Unix при запуске программы она наследует права доступа от вошедшего в систему пользователя. SGID определяется как предоставление временных разрешений пользователю для запуска программы / файла с разрешениями разрешений файловой группы, чтобы стать членом этой группы для выполнения файла. Проще говоря, пользователи получат права доступа группы файлов при выполнении команды Папка / файл / программа /.
Но в любом случае, если я упускаю вашу точку зрения, учтите, что иногда это помогает узнать немного больше о рассматриваемой проблеме. Подумайте над тем, чтобы немного расширить свой вопрос, добавив другую важную информацию (например, какое приложение, что вы имеете в виду, решая с помощью linux, например, какой пользователь запускает ваше приложение или у вас даже есть доступ к оболочке?)
Надеюсь, это поможет в любом случае.