有一個我通過doxygen運行的源代碼庫,它會在我的public_html目錄中生成html。發現自己不得不改變的umask和黑客的主要組在bash這樣的,它的工作原理:doxygen可以爲它創建的文件設置自定義權限嗎?
echo "umask $UMASK; doxygen include_config.conf" | newgrp $GROUP
但似乎笨重,我不禁想知道是否有一些配置設置或選項開關doxygen的設置UID /組和直接在它生成的所有文件/目錄上的權限?它常被用於在網站上生成HTML,幾乎每個人都需要有輸出世界可讀。搜索了網頁,配置文件和手冊頁無濟於事。
更新:希望找到一些內置功能,但看起來像沒有。一些迭代後,此包裝似乎做的工作:
#!/bin/bash
OUTPUT_PATH=/path/to/output
CONFIG_PATH=/path/to/include_config.conf
GROUP=somegroup
PERM=750
UMASK=027
if [[ ! -e $OUTPUT_PATH ]]; then mkdir $OUTPUT_PATH; fi
chmod $PERM $OUTPUT_PATH
chmod g+s $OUTPUT_PATH
chgrp $GROUP $OUTPUT_PATH
umask $UMASK
doxygen $CONFIG_PATH
這是多一點堅固,便攜,比原來的劇本不太笨重,同時還在一個通和不分種族的條件下工作。
好吧猜猜我運氣不好,然後堅持我的umask/newgrp腳本。我不會使用chgrp和chmod,因爲那樣它會在所有文件上傳遞三次而不是一次,而且在我的情況下它會有一個競爭條件,因爲我實際上設置了更多限制性的權限。 – smocking 2012-04-20 23:45:15
沒有聽說過目錄上的'setgid'行爲;這是一個很好的功能。仍然需要umask,但這種方式不那麼笨拙。 – smocking 2012-04-21 11:01:44