我設法從傳送到某個郵件的電子郵件中提取所有附件到我的Linux服務器上的公用文件夾(使用postfix-> procmail-> uudeview)。不幸的是,文件本身保存的權限僅限於文件發送給系統用戶的權限(稱爲「掃描」)。如何更改提取的附件(postfix,procmail,uudeview)的所有權?
如何在我的設置中建立「chmod 777 /path/to/folder/*.pdf」,以便任何人都可以使用來自我的掃描儀的文件?
有沒有更好的方法來做到這一點?
問候 弗蘭克
我設法從傳送到某個郵件的電子郵件中提取所有附件到我的Linux服務器上的公用文件夾(使用postfix-> procmail-> uudeview)。不幸的是,文件本身保存的權限僅限於文件發送給系統用戶的權限(稱爲「掃描」)。如何更改提取的附件(postfix,procmail,uudeview)的所有權?
如何在我的設置中建立「chmod 777 /path/to/folder/*.pdf」,以便任何人都可以使用來自我的掃描儀的文件?
有沒有更好的方法來做到這一點?
問候 弗蘭克
不管它是你正在做的,chmod 777
如此誤導爲失去你的計算機的駕駛執照。這是一個嚴重的安全問題使文件世界可寫和可執行。
您可能正在尋找Procmail的變量UMASK
。如果權限太緊,請在交付之前設置更爲寬鬆的UMASK
。例如:
:0
* some conditions
{
UMASK=003
:0
| uudeview --whatever
}
的umask
系統調用只能條權限,不添加它們。通常,C程序嘗試使用模式0666
創建數據文件,然後應用umask
,通常產生類似0644
(意指有效的umask
類似0022
或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
,也許通過調整其來源,或通過創建寫入後確定了許可的包裝。
我懷疑777不會順利下來;) – Toffix
UMASK做我以後的事,但只是「半途而廢」。我試過UMASK = 001,UMASK = 003,UMASK = 010和UMASK = 100,但都只是提供對文件的rw-r -r--訪問。 我的.procmailrc文件爲: :0 * ^內容類型: { UMASK = 001 :0fw | uudeview -p/home/storage/scans - } – Toffix
稍後更新。順便說一句,你在存在「Content-Type:」頭部的情況有點奇怪。如果它適合你,好的;但基本上所有的MIME消息都有。 – tripleee