Я хотел бы дать права 755 для каталога, поэтому я использую:
# chmod -R 755 /my/folder/
Это работает для всех файлов внутри моей папки, но проблема в том, что я использую скрипты, которые создают новые файлы в этой папке, а по умолчанию разрешения — 600.
Как я могу установить права доступа 755 для этих «будущих» файлов?
--РЕДАКТИРОВАТЬ--
Я использую скрипт, который дает мне информацию о сетевом трафике в моем кампусе. У меня есть новый файл каждые 10 минут, расположенный в папке с именем journey, расположенной в папке месяца, вот так:
ls -lrt /home/netmet/secure/2017-04/2017-04-27/
total 118548
-rwxr-sr-x 1 root root 85922 avril 27 00:10 zzaccounting.dmp-00-00
-rwxr-sr-x 1 root root 54874 avril 27 00:20 zzaccounting.dmp-00-10
-rwxr-sr-x 1 root root 33534 avril 27 00:30 zzaccounting.dmp-00-20
-rwxr-sr-x 1 root root 48890 avril 27 00:40 zzaccounting.dmp-00-30
-rwxr-sr-x 1 root root 36878 avril 27 00:50 zzaccounting.dmp-00-40
-rwxr-sr-x 1 root root 37034 avril 27 01:00 zzaccounting.dmp-00-50
-rwxr-sr-x 1 root root 38154 avril 27 01:10 zzaccounting.dmp-01-00
-rwxr-sr-x 1 root root 38318 avril 27 01:20 zzaccounting.dmp-01-10
-rwxr-sr-x 1 root root 26978 avril 27 01:30 zzaccounting.dmp-01-20
-rwxr-sr-x 1 root root 31558 avril 27 01:40 zzaccounting.dmp-01-30
-rwxr-sr-x 1 root root 23662 avril 27 01:50 zzaccounting.dmp-01-40
-rwxr-sr-x 1 root root 32298 avril 27 02:00 zzaccounting.dmp-01-50
-rwxr-sr-x 1 root root 30282 avril 27 02:10 zzaccounting.dmp-02-00
-rwxr-sr-x 1 root root 31110 avril 27 02:20 zzaccounting.dmp-02-10
-rwxr-sr-x 1 root root 25718 avril 27 02:30 zzaccounting.dmp-02-20
-rwxr-sr-x 1 root root 26306 avril 27 02:40 zzaccounting.dmp-02-30
-rwxr-sr-x 1 root root 23690 avril 27 02:50 zzaccounting.dmp-02-40
-rwxr-sr-x 1 root root 23002 avril 27 03:00 zzaccounting.dmp-02-50
-rwxr-sr-x 1 root root 21854 avril 27 03:10 zzaccounting.dmp-03-00
Здесь я изменил разрешения вручную, но когда появляется новый файл, у меня появляется это:
-rw------- 1 root root 3479106 avril 27 15:50 zzaccounting.dmp-15-40
Дело в том, что для каждой папки и файла в/home/netmet/безопасный/Мне нужны права доступа 755 по умолчанию.
Я уже это сделал:
chmod -R g+s /home/netmet/secure
setfacl -d -m g::rwx /home/netmet/secure
setfacl -d -m o::rx /home/netmet/secure
решение1
Попробуйте запустить umask
в своей папке. Если он возвращает что-то, кроме '0022', то это ваша проблема. В вашем случае он должен изначально выводить '0177'. Система разрешений при создании каталога в основном вычисляется:
default - umask
0777 — это режим по умолчанию для каталогов, а 0666 — для обычных файлов, но есть разные umask, если я правильно понимаю. Попробуйте выполнить umask a=rx,uu+w
.
EDIT: Вы можете использовать umask, чтобы дать бит выполнения каталогу, чтобы иметь возможность перейти в него, но не файлам. Им нужно дать бит выполнения вручную из соображений безопасности. Просто добавьте chmod +x <file>
в свой скрипт. И флаг выполнения, установленный для файла, который не является исполняемым, не будет иметь никакого эффекта.
решение2
Я предполагаю, что вы запускаете скрипты, которыегенерироватьфайлы в среде, где umask установлен на 0077. Это не позволяет генерирующей программе устанавливать какие-либо биты разрешений в битах разрешений «группа» и «другие».
Обратите внимание, что umask является частью унаследованной среды любого процесса и обычно устанавливается из профиля по умолчанию при входе в систему. Любой процесс (оболочка) может изменить свой собственный и дочерний (начальный) umask с помощью команды umask.
Биты в текущей umask предотвратят создание файлов с этими битами, установленными в их разрешениях (отсюда «маска», маскирующая результирующие биты разрешений)
решение3
Примечание: Это не идеальный вариант и его следует рассматривать как временное решение.
Вы можете создать задание cron, которое будет запускать команду chmod каждые 5 минут или по вашему усмотрению.
Есть такжеinotify