Есть несколько разных подходов к этому. (Конечно, есть; это Perl :-))
Первый вариант: используйте sysopen()
для создания файла с указанными разрешениями, затем используйте store_fd()
и fd_retrieve()
. См. Также Perl open () , в частности, раздел «Разрешения в режиме».
Второй вариант: используйте umask()
для ограничения прав доступа к файлу. Не забудьте вернуть его исходное значение, если вы работаете с несколькими файлами.
Третий вариант: используйте chmod()
, чтобы вручную установить права доступа к уже существующему файлу.
Первый вариант концептуально лучше, так как он позволяет пользователю еще больше сузить разрешения, управляя самим umask. (Попробуйте help umask
в приглашении оболочки. Набор umask применяется ко всем программам, запускаемым из оболочки. Снова смотрите perlopentut .)