oranie's blog

旧:iをgに変えると・・・なんだっけ・・・

Apacheサーバを運用する時に作業効率を100倍にする方法にツッコミを頂いた

ありがたい事に昨日書いたエントリにマジレス(?)貰えたので、それについてマジレスというか、お詫びします。

http://b.hatena.ne.jp/amari3/20110921#bookmark-59906142

amari3 
「apache セキュリティを考えるなら sudo -e とか sudoedit の方がいいぜ 2011/09/21」

む?(・ω・)
と思い、「sudo vi 危険」とかで調べると・・・チョー危ない!��(゚Д゚;)
http://kaworu.jpn.org/kaworu/2008-05-04-2.php
こちらのサイトにも書かれていますが

sudo viで起動したroot権限を持つviは、root権限でコマンドを
実行することができます。viからコマンドが起動されるため、
sudoコマンドの設定の影響を受けません。
ようするに、何もかも許しているのとなんら変わりません。

・・・・・・・セキュリティホールを広げるような記事を書いてしまいお詫びします><
安全に100倍にするには

alias htvi='sudoedit /etc/httpd/conf/httpd.conf '

ですね・・・!

                                                                                                                                                                                                                                      • -


http://b.hatena.ne.jp/tagomoris/20110921#bookmark-59906142

tagomoris 
「apacheの設定ファイルが /etc にあるか /usr/local にあるかわからないという荒野では100倍になれません」

まず、真っ当に設定ファイルを探すなら、以下のコマンドを実行してHTTPD_ROOTを探します。
起動時に指定しているんなら、起動スクリプト見て下さい。


以下、さくらVPSで入れたapacheの例。

# /usr/sbin/httpd -V
Server version: Apache/2.2.3
Server built:   May  4 2011 06:51:15
Server's Module Magic Number: 20051115:3
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

はい、これでインストールされているhttpdのデフォルトconfigパスが分かりましたね。
じゃあ、このパスを自動で取りましょう。

/usr/sbin/httpd -V| grep -e "HTTPD_ROOT\|SERVER_CONFIG_FILE" |\
 /bin/sed "s/[^a-z\./]//g" |paste -s| /bin/sed "s/[\t\| ]/\//"

とれたかな。

で、これをaliasにする所で何やらで挫折!!
なので、環境がちょこちょこある所は

alias htvi='sudoedit /etc/httpd/conf/httpd.conf '
alias htvi2='sudoedit /usr/local/apache/conf/httpd.conf '
※/usr/localの時パスこうだっけ?

で50倍の生産性向上を味わって下さい!


以上、あんなエントリにツッコミありがとうございました!!