2013-11-25 98 views
0

我有一個程序在web-server目錄(/ var/www/log)中創建日誌文件。它每天都會生成一個新的日誌文件。 我這個目錄設置訪問權限,以777在Linux中訪問目錄的權限

chmod 777 -R /var/www/log 

但是,當系統生成新的一天的日誌文件,它不具有訪問權限777.我不得不手動做一遍。 如何正確設置目錄權限?該目錄中的所有文件必須自動有777個文件。

+1

取決於你的程序,真的。另外,每個用戶都有一個默認掩碼,由umask定義。 – njzk2

+2

我認爲這個問題會在superuser.com上做得更好 – Yitzchak

+1

除非修改Linux內核,否則這種情況不太可能發生。普通文件最多隻能在666模式下創建,除非它們被標記爲可執行文件。總的來說,無論如何,這看起來像是一個非常糟糕的想法(tm)。爲什麼你想讓你的日誌文件被任何人閱讀/銷燬? – twalberg

回答

0
  1. 這是一個非常主意,有文件的可執行文件,不需要是:它是一個可能的安全風險,以及一個不小。在你的情況下,root擁有的一些文件可以寫入公衆。對於對該文件具有寫入權限的每個人都可以修改它們,以作爲根(是的,您可以使任何文件在Linux下運行)。正如Twalberg所指出的:這是一個真的壞主意™
  2. 不要直接寫日誌文件。它使系統管理員的生活變得不必要的困難。改爲使用syslog。每種編程語言都可以選擇登錄到系統日誌。背後的原因是:當公司達到一定規模時,可能會發生並經常發生,他們使用集中式系統日誌服務器。當每個軟件包表現良好時,所有必須完成的工作是更改一個配置文件,並將所有日誌條目發送到該專用syslog服務器。或者管理員可能想要更改寫入日誌文件的位置,例如從/ var/www/log到/ var/log/www。 syslogd.conf中有一行,但直接寫入日誌文件時行數不可預測。直接編寫日誌文件可能是一個很好的回退,但默認情況下是不好的做法。
  3. 如果您運行的不是您自己編寫的軟件,而是您的linux發行版本本身的軟件,則可以以root用戶身份啓動該軟件,並使用runusersudo命令將其權限下放給此軟件的專用用戶。這個專用用戶可以寫入日誌文件。這仍然是一個黑客。服務應該能夠以nobody用戶身份運行。

一般情況下,我不明白爲什麼所有用戶必須訪問所有日誌文件。請詳細說明。

出於完整性:

什麼最有可能的情況是,logrotate踢它是一個工具壓縮舊的和刪除過時的日誌文件,並創建基於什麼是/etc/logrotate.conf配置,其中包括有文件換新。否則你的服務器會在一段時間後耗盡空間。您可以更改日誌輪播的配置或

不要執行下列操作

你可以一個chmod 0777 -R /var/www/log要麼添加到crontab根或各種系統crontab中。