2014-03-07 4 views
1

필자는 전자 메일에서 특정 전자 메일로 전달되는 모든 첨부 파일을 Linux 서버의 공용 폴더 (postfix-> procmail-> uudeview 사용)에서 추출 할 수있었습니다. 유감스럽게도 파일 자체는 파일이 전송 된 시스템 사용자 ("스캔")로 제한된 권한으로 저장됩니다.추출 된 첨부 파일 (postfix, procmail, uudeview)의 소유권을 변경하는 방법은 무엇입니까?

"chmod 777 /path/to/folder/*.pdf"를 내 설치 프로그램에 빌드하여 (내 스캐너에서 오는) 파일을 누구에게나 제공 할 수 있습니까?

더 좋은 방법이 있나요?

감사 프랭크 당신이 chmod 777 그래서 컴퓨터 운전 면허증을 잃게로 잘못 전달되고,하고 있다는 것을 무엇이든간에

답변

2

. 파일을 세계에서 쓰기 가능하고 실행 가능하게 만드는 것은 심각한 보안 문제입니다.

아마도 Procmail의 UMASK 변수를 찾고있을 것입니다. 권한이 너무 좁 으면 전달하기 전에 더 편안하게 UMASK을 설정하십시오. 예 :

:0 
* some conditions 
{ 
    UMASK=003 
    :0 
    | uudeview --whatever 
} 

umask 시스템 호출은 스트립 권한은 그들을 추가 할 수 없습니다. 일반적으로 C 프로그램은 0666 모드를 사용하여 데이터 파일을 작성한 다음 umask을 적용하여 종종 0644 (유효 umask0022 또는 0033과 같음)을 생성합니다. Linux의 경우 새로 생성 된 파일이 directory's permissions also somewhat influence the permissions입니다. 하지만 여기 Procmail 외부로 모험하고 있습니다. Procmail의 UMASK 기능을 디렉터리 사용 권한과 결합하면 필요한 최종 결과를 얻을 수 있습니다.

추출중인 "첨부 파일"이 MIME 첨부 파일이 아니지만 실제는 uuencode 인 경우 인코딩 specifies permissions for every encoded file에 유의하십시오. begin 행에 644이라고 표시되어 있으면 변경해야 할 수 있습니다. 다시 구출하는 Procmail! 심지어이 도움이되지 않을 경우 결국

:0 
* some conditions 
{ 
    UMASK=003 
    | sed 's/^begin [0-7][0-7][0-7][0-7]* /begin 664 /' | uudeview --whatever 
} 

, 그것은, 또는 작성 후 권한을 수정 래퍼를 작성하여 아마도 소스를 조정하여 uudeview 수정까지 올 수 있습니다.

+0

나는 777이 잘 풀리지 않을 것이라고 생각했다.) – Toffix

+0

UMASK는 내가 한 일을 수행하지만 "반쪽"만 수행한다. 나는 UMASK = 001, UMASK = 003, UMASK = 010 및 UMASK = 100을 시도했지만 모두 rw-r-r-- 파일에 대한 액세스만을 제공합니다. 내 .procmailrc은 다음과 같습니다 : 0 *^콘텐츠 유형 : { UMASK = 001 : 0fw | uudeview -p/home/storage/scan - } – Toffix

+0

다소 업데이트되었습니다. 덧붙여 말하자면,'Content-Type :'헤더가있는 상태는 이상합니다. 그것이 당신을 위해 작동한다면, 좋다; 기본적으로 모든 MIME 메시지에는 해당 메시지가 있습니다. – tripleee