Как я могу установить права доступа к файлам из Perl? - PullRequest
12 голосов
/ 22 февраля 2010

Я пишу Perl-скрипт, который генерирует Bash-скрипт. Я использую open() с режимом > для вывода всего в новый файл. Стандартные вещи:

open (FILEOUT, ">", "rename.sh") or die "Can't create rename.sh";

Полученный файл .sh доступен только для чтения, с восьмеричным значением 444. В perldoc говорится, что я могу добавить + к > (open (FILEOUT, "+>", "rename.sh")), чтобы сделать вновь созданный файл доступным для чтения и записи. или 666.

Есть ли способ сделать исполняемый файл новым (755 или что-то еще), используя open()? Если нет, как лучше установить права доступа к файлу для нового файла?

Ответы [ 2 ]

18 голосов
/ 22 февраля 2010

Вы захотите chmod файл, подобный этому.

chmod 0755, $filename;
#or
chmod 0755, $fh;

В качестве альтернативы, если вы используете sysopen и соответственно установите umask , вы можете обойтись без chmod.

1 голос
/ 22 февраля 2010

Установка + перед < или > позволяет открывать файл как в режиме чтения, так и в режиме записи.

В вашем случае вы можете chmod вновь созданный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...