apacheを別ユーザー権限で運用している場合に起きる問題(yumアップデート編)

当HPはapacheユーザーで動かしていません。

/var/lib/php/session等、アップデートが入るたびにパーミッション・ユーザー権限が初期値にもどってめんどくせぇ!

というわけで、そんな時用に今回、初めての自作シェルスクリプトに挑戦しました。

挙動としては、/var/lib/phpを参照し、grepでsessionディレクトリだけを抽出します。その抽出結果の中に、ユーザー権限が初期値(root apache)になってる物を検出。
初期値に戻っていれば変更を加え、戻っていなければ何もせず終了します。

/var/www/htmlディレクトリも同じ用な挙動になります。
何故かroot rootになってFTPアップロード出来なくなることが有りましたので。

実際こちらで使うのは、yumコマンドでアップデートを行い、自動的に変更されたディレクトリを元に戻す。という一連の作業をcronで動かすためです。

お役に立てるようでしたらどうぞ利用下さい。

2014/12/10 …シェルスクリプトを更新 yum updateの後にアクセス権限を修正します。


#!/bin/sh
#
#User setting
#The default setting is [apache]. Please change as necessary.
USER=apache

yum update -y

echo permission check……/var/lib/php/sessions
if `ls -la /var/lib/php |grep session |grep -q “root apache” `;
then

echo Permission of target diretory is not appropriate.
ls -la /var/lib/php |grep session
chown -R root.${USER} /var/lib/php/session

echo I changed the permissions automatically.
ls -la /var/lib/php |grep session
echo
echo           Finish

else
echo Location to be changed was not found.
ls -la /var/lib/php |grep session
fi

echo permission check……/var/www/html

if `ls -la /var/www |grep html |grep -q “${USER} ${USER}” `;
then
echo Location to be changed was not found.
ls -la /var/www |grep html
echo          Finish
else

echo Permission of target diretory is not appropriate.
ls -la /var/www |grep html
chown ${USER}.${USER} /var/www/html
echo I changed the permissions automatically.
ls -la /var/www |grep html
echo
echo           Finish
fi

 

コメントを残す