AlmaLinux9で複数のコマンドをまとめてシェルスクリプトにする方法
AlmaLinux9のコンテナ環境に移行後、FTPでファイルアップロードやWordPressのダッシュボードからプラグイン等のダウンロード時は問題無いが、サーバにSSH接続してスーパーユーザーでunzipとかすると権限設定のコマンドを何回も打つ必要があり面倒くさい。シェルスクリプト化し、1回のコマンドで済む方法をメモ。
やりたいこと
以下のコマンドを1回で済むようにしたい。また、可読性を保ちたいのと、後で変更しやすいようにシェルスクリプト化したい。
# ホスト側の所有者・グループ設定
chown -R test_user:nginx /var/www/html
# ディレクトリとファイルのパーミッション一括設定
find /var/www/html -type d -exec chmod 775 {} +
find /var/www/html -type f -exec chmod 664 {} +
# SGID設定
find /var/www/html -type d -exec chmod g+s {} +
# 現在あるファイル・フォルダに対し、uid33(www-data)のユーザーに全権限を付与
setfacl -R -m u:33:rwx /var/www/html
# 今後作られるファイル・フォルダに対しても上記設定が引き継がれるよう設定
setfacl -R -d -m u:33:rwx /var/www/html
対応方法
シェルスクリプト作成
サーバにSSH接続し以下でファイル作成。
# シェルスクリプトの作成 vi /usr/local/bin/set_perms.sh
以下内容を記述して保存。ディレクトリやユーザー名は適宜変更する。
#!/bin/bash
# 設定対象のディレクトリ
TARGET="/var/www/html"
# 指定したディレクトリが存在しない場合は終了
if [ ! -d "$TARGET" ]; then
echo "error: $TARGET が存在しません。"
exit 1
fi
echo "start"
chown -R test_user:nginx "$TARGET"
find "$TARGET" -type d -exec chmod 775 {} +
find "$TARGET" -type f -exec chmod 664 {} +
find "$TARGET" -type d -exec chmod g+s {} +
setfacl -R -m u:33:rwx "$TARGET"
setfacl -R -d -m u:33:rwx "$TARGET"
echo "end"
以下で権限変更。
# 権限付与 chmod +x /usr/local/bin/set_perms.sh
コマンド実行
# 実行 set_perms.sh # 正常に実行された場合は以下が出力される筈 start end
関連記事
-
-
OpenLightSpeedを触ってみた感触と使いどころについて
ここのところOpenLightSpeedを色々試してみた。「Apacheとの互換 ...
-
-
PodmanにComposerを導入し、パッケージをインストールする方法
先日Podmanで導入したapache-phpに各種PHPモジュールを追加したが ...
-
-
CentOS6系環境のVPSに対して公開鍵認証を設定する方法
本番稼動しているVPSサーバーでSSHの接続ログをかなり久しぶりに見ると、不正ロ ...
-
-
almalinux8.6でyumをアップデート時にエラーが発生する場合の対応方法
AlmaLinux8.6にて「yum -y update」を実行したところ「Ke ...
-
-
レンタルサーバのQuicca Plus(クイッカプラス)を使用した感想
利用しているVPSのWebARENA Indigoから価格改定の案内メールが届い ...