Я хотел бы дать 755 разрешений для каталога, поэтому я использую:
# chmod -R 755 /my/folder/
Он работает для всех файлов в моей папке, но проблема в том, что я использую скрипты, которые создают новые файлы в этой папке, и по умолчанию разрешения равны 600.
Как я могу наложить 755 разрешений на эти «будущие» файлы?
--РЕДАКТИРОВАТЬ--
Я использую скрипт, который дает мне информацию о сетевом трафике в моем кампусе. У меня есть новый файл каждые 10 минут, расположенный в папке с названием trip, расположенной в папке с месяцами, например:
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 / secure / я хочу 755 разрешений по умолчанию.
Я уже сделал это:
chmod -R g+s /home/netmet/secure
setfacl -d -m g::rwx /home/netmet/secure
setfacl -d -m o::rx /home/netmet/secure
debian
permissions
chmod
umask
klaypez
источник
источник
umask
, но не для переопределения программы, которая создает файлы с режимом0600
по дизайну. Смотрите здесь для некоторых ссылок.umask
для добавления бита выполнения к файлам, это нужно сделать вручную2017-04-27
) и как каталоги создаются в первую очередь? Пожалуйста, обновите вопрос с этими деталями.Ответы:
Попробуйте запустить
umask
в своей папке. Если он возвращает что-то кроме «0022», то это ваша проблема. В вашем случае он должен сначала вывести «0177». Система разрешений при создании каталога в основном вычисляется:default - umask
0777 является режимом по умолчанию для каталогов, а 0666 - для обычных файлов, но существуют разные маски, если я правильно понимаю эти вещи. Попробуйте выполнитьumask a=rx,uu+w
.РЕДАКТИРОВАТЬ: Вы можете использовать Umask, чтобы дать бит выполнения для каталога, чтобы иметь возможность CD в него, но не для файлов. Они должны быть предоставлены выполнить бит вручную из-за безопасности. Просто добавьте
chmod +x <file>
в свой скрипт. И флаг выполнения, установленный в файле, кроме исполняемого, не имеет никакого эффекта.источник
umask
оболочки не зависит от пути, она зависит только от пользователя, который ее запускает, у каждого пользователя есть определенное значение umask, определенное при входе в систему, которое можно изменить позже. Это определяет, как создаются новые разрешения для файлов.chmod a=rx,u+w
в вашем ответе.Я предполагаю, что вы запускаете сценарии, которые генерируют файлы в среде, где umask имеет значение 0077. Это не позволяет генерирующей программе устанавливать какие-либо биты разрешений в битах разрешений «группа» и «другие».
Обратите внимание, что umask является частью наследуемой среды любого процесса и обычно устанавливается из «профиля» по умолчанию при входе в систему. Любой процесс (оболочка) может изменить свой собственный и исходный детский (начальный) umask с помощью команды 'umask'.
Биты в текущем umask будут препятствовать созданию файлов с этими битами, установленными в их разрешениях (следовательно, «маска», маскирующая результирующие биты разрешений)
источник
Примечание : это не идеально и должно рассматриваться как временное решение
Вы можете создать задание cron, которое запускает команду chmod каждые 5 минут или по желанию.
Там же есть inotify
источник