public_html ディレクトリに html を生成する doxygen を時々実行するソース リポジトリを用意します。次のように、umask を変更して bash のプライマリ グループをハックする必要があることに気付きました。
echo "umask $UMASK; doxygen include_config.conf" | newgrp $GROUP
しかし、それは不格好に思えます.doxygenが生成するすべてのファイル/ディレクトリにUID/グループと権限を直接設定するための構成設定またはオプションスイッチがあるかどうか疑問に思わずにはいられませんか? これは、Web サイトで HTML を生成するために頻繁に使用されるため、ほとんどすべての人が出力を誰でも読み取り可能にする必要があります。Web、構成ファイル、およびマニュアルページを無駄に検索しました。
更新:組み込みの機能を見つけたいと思っていましたが、何もないようです。いくつかの反復の後、このラッパーは仕事をしているようです:
#!/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
これは、元のスクリプトよりも堅牢で、移植性が高く、扱いにくいものではありませんが、1 つのパスで動作し、競合状態もありません。