Скрипт Procmail создает файлы с неожиданными правами на чтение / запись

880
Joe Fitzgerald

Работая под CentOS 6.5, у меня есть рецепт procmail, который вызывает Perl-скрипт, который обрабатывает почту, адресованную reguser, и записывает файл наподобие:

my $text = "Text generated from incoming mail"; my $filename = "test.txt"; open(FILE, ">" . $filename) or die "Can't open file $filename"; print FILE $text; close FILE; 

Когда этот файл создается при запуске скрипта из Procmail, только root имеет права на чтение / запись, например

-rw------- 1 regusr regusr 33 Sep 12 22:40 test.txt 

Эти разрешения кажутся немного произвольными. Когда мой Perl-скрипт запускается из командной строки как regusr, я получаю разрешения вроде:

 -rw-rw-r-- 1 regusr regusr 33 Sep 14 14:22 test.txt 

Почему есть разница?

0
Возможно, procmail меняет UMASK по умолчанию. Попробуйте явно установить `UMASK` в файле procmailrc, используя` UMASK = 077`, и посмотрите, имеет ли это значение. Marcus Rickert 9 лет назад 1
Ааа, UMASK ... Я не думал об этом. В .procmailrc UMASK = 077 не имел никакого эффекта, но UMASK = 003, казалось, имел желаемый эффект, особенно маскируя запись и выполнение для других пользователей. Я только что нашел в документации Procmail «Если не указано, umask по умолчанию 077» http://pm-doc.sourceforge.net/doc/#variable_umask Joe Fitzgerald 9 лет назад 0
Пожалуйста, опубликуйте это как ответ, чтобы этот вопрос больше не отображался как нерешенный. Благодарю. tripleee 9 лет назад 0

1 ответ на вопрос

0
Joe Fitzgerald

Ahh UMASK ... I had not thought of that. In .procmailrc UMASK=077 did not have any effect, but UMASK=003 seemed to have the desired effect, specifically masking write and execute for other users. I just found in the Procmail docs "If not specified, the umask defaults to 077" pm-doc.sourceforge.net/doc/#variable_umask

Похожие вопросы