apacheサーバー接続のオーナー名の変更についての参考例 - あくまでも実験でやってます。(_ _)/(一応、これも玄人向けです)(FUKUTAKA編)
先日apacheサーバーとSQLite3 のWebブラウザでのアクセス方法を書きましたが、
中には、オーナー名を変えたい方がいるかもしれませんので、記述します。
なので、試しに仮想サーバなどで試されてください。
そのサーバーには貴重なデータなどは入れておかないかバックアップをしておいてください。
apacheサーバーの設定ファイルのhttpd.conf(Ubuntuならapache2.conf)
を変更するのだが、項目に
User apache
Group apache
という項目があると思います。これを変更すればよいのですが、
ただ、変更して httpd(apache2)を再起動してもエラーが返されます。
では、どうするのかですが、
例としてapache_user
というユーザ名でやります。
2通りあります。
① apache というユーザ名とgroup名を変更して、apacheサーバの変更をする
② 新たに追加ユーザをして、設定する
①つ目:apache というユーザ名とgroup名を変更して、apacheサーバの変更をする
# usermod -l apache_user apache
# groupmod -n apache_user apache
で、変更をかけ、
httpd.conf(Ubuntuならapache2.conf)を
User apache_user
Group apache_user
に変更し
apacheサーバーの再起動をする
あとは、前回の「Alma Linux 9/Rocky Linux 9 、apacheサーバーで、sqlite3のDBファイルのネットワークで使うためのコツ(一応、玄人向けです。) [FUKUTAKA編]」
をしておく
通常はここまででしておいた方が安全だと思います。
すみません。先にここから先が思いついてしまいました(_ _)/
一応、載せておきます
②つ目:新たに追加ユーザをして、設定する
apacheオーナーを残して追加でやりたいなら
新たにユーザを追加してパスワード無し(実験では有りでもなりました。)にしておくのです。
例として、
# useradd apache_user
そして、そのまま
httpd.conf(apache2.conf)の
User apache
Group apache
を
User apache_user
Group apache_user
に編集して、httpd(apache2)を再起動してください
そして、前回の
「Alma Linux 9/Rocky Linux 9 、apacheサーバーで、sqlite3のDBファイルのネットワークで使うためのコツ(一応、玄人向けです。) [FUKUTAKA編]」
と同じやり方で、ディレクトリとDBファイルのオーナー名を変えてください。
ただし、ユーザのホームディレクトリやユーザシェルなどで、支障がでるかもしれませんので、これも変えます。
では変え方ですが、
# cat /etc/passwd
で中を見て、
apache の項目をみていただくと、
ユーザーホームディレクトリが
/usr/share/httpd
ユーザシェルが、
/sbin/nologin
になってると思いますので、これに変えるのです。
つまり、ここまでしなくてよいのでは、思うかもしれませんが、
apache項目とほぼ同じ項目にするということですね。
では、ここから特に注意
コマンドは
# usermod -d /usr/share/httpd apache_user
(新しいapacheユーザー名)
で、ユーザホームディレクトリを変える
# usermod -s /sbin/nologin apache_user
(新しいapacheユーザー名)
で、ユーザシェルを変えます。
ちなみに/etc/passwd のapacheの項目に
Apache とあると思いますが、これはコメントだそうです。
では、確認です
# cat /etc/passwd
/etc/shadow
の手動編集します。
# vi /etc/shadow
変えるのは、
第1フィールド:ユーザ名
第2フィールド:パスワード
第3フィールド:パスワードを最後に変更した日
第4フィールド:変更可能最短期間
第5フィールド:未変更可能最長期間
第6フィールド:未変更時警告日
第7フィールド:ログインしない場合に無効になる日数
第8フィールド:アカウントが失効になるまでの日数
第9フィールド:フラグ
の
第1フィールド:ユーザ名
第2フィールド:パスワード
第3フィールド:パスワードを最後に変更した日
以外の
:
と:
間を空欄にする
例 apache_user:!!:19755::::::
というふうに
※ 「:」の数を間違えないでください。
そして、httpd(apache2)の再起動して、確認をしてください。
もしかしたら、ここまでのことはしなくて良いかもしれませんが、
あくまでも一例として載せています。
大げさだなぁと思うかもしれませんが、
何かあっても責任は負いかねませんので、ご了承ください。
なので、試しに仮想サーバなどで、されてみてください。
そのサーバーには貴重なデータなどは入れておかないかバックアップをしておいてください。