ログインユーザーでメールログを閲覧出来るようにする

プログラミング・コーディングのサムネイル画像 メールログを監視してbouncedとなったメールアドレスに対して何らかの処理を行うということをしたいのだけど、ログの解析は何とかなるとしてもそもそもメールログが読み込めない。考えてみれば当然のことで、メールログって基本的にroot権限なんですよね。そして600。

$ stat /var/log/maillog
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
このままだと不便なのでログインユーザーでメールログを読めるようにしたい。ただセキュリティ的な意味で誰でも読めるみたいなことにはしたくないので、ちょっとひねって、グループで管理することにしてみました。やってみた手順はこんな感じ。
  1. ログ閲覧ユーザー専用のグループを作成する

    # groupadd logadmin
  2. ログインユーザーをログ閲覧ユーザー専用グループに追加する
    # usermod -a -G logadmin vagrant
  3. メールログのパーミッションとグループを変更する

    # chmod 640 /var/log/maillog
    # chgrp logadmin /var/log/maillog

  4. ログローテーションの設定を変更する
    # vi /etc/logrotate.d/syslog
    
create 640 root logadmin ← endscriptの直下に追加

  5. ログインし直して確認
こうすることでメールログファイルは所有者である「root」に閲覧と書き込みが、「logadmin」グループに所属しているユーザーには閲覧のみが認められるようになります。で、そのグループにログインユーザーを登録しておけば、ログインユーザーがメールログを読めるという寸法。 ついでにログローテーションの設定を変更して、ローテーション後に作成される新ファイルのパーミッションも変えるようにしておきます。 パーミッションを変える以上どうしたってセキュリティは下がるわけですが、変更を最低限にすることでまだマシかなあと思うのですがいかがでしょうか。ダメかな。

参考

Linuxねた帳: 一般ユーザでログを参照する syslogのアクセス権限を変更する : What Would Jesus Do?

続きを読む

開発環境の整備(Vagrant+VirtualBox+CentOS7.6+PHP7.1)【#np2020】

vagrant.png ローカルの開発環境として、Vagrantを使います。Macの方がセットアップ・運用共にが楽なんですが、Windowsでも問題なくできます。

概要

  • 使用OS:Windows 7
  • ゲストOS:CentOS 7.6
  • 仮想環境:Vagrant 2.2.2 + VirtualBox 6.0.0

手順

  1. VagrantとVirtualBoxをインストール
  2. CentOS7.6を追加してVagrant起動
  3. PHP 7.1をインストール

参考サイト

基本的には、こちらの記事を参考にさせていただきました。 Vagrant + VirtualBoxでWindows上に開発環境をサクッと構築する – Qiita Windows上でVirtualBox+Vagrant+CentOSによる仮想環境構築 – Qiita ただ記事と時差があるのか個別にハマったところも何点かあったので、それらについてはまた別の記事を参考にしています。

続きを読む

Windowsにターミナル「mintty」をインストールする【#np2020】

mintty.jpg

インストール

インストールはこちらを参考にしました。 Windowsにminttyを入れた話 – 駄文置き場ですから 少しわかりにくいのは、「mintty」というソフトウェアが独立して存在しているのではなくて、「MinGW」というGNUツールの一部として提供されているということです。なのでまず「MinGW」のインストーラをインストールし、そのインストーラ上で「mingw-developer-toolkit」をインストールします。で、そこから「mintty」をインストールするという具合。 インストールの方法やその後の設定については、上の記事に詳しく記載されているので参考にしてください。書いてあるとおりにやれば大丈夫です。個人的に変更したところは透過を「High」にしたのと、フォントを「Ricty Diminished Discord」にしたくらいですかね。 RictyDiminishedDiscord.png (画像:https://qiita.com/hamaguchitm/items/546d40b7777bd9242e78 上記記事内では日本語周りのカスタマイズを結構してますが、僕の環境では特に設定しなくても問題は出てません。バージョンの問題かなあ。

感想

開発を伴うサイトの引っ越しを始めるにあたり、今さらですが手元のWindowsにちゃんとしたターミナルがないなあということを感じました。今までは「Poderosa」を使っていてそれで十分に満足していたんですが、最近使われているターミナルってどんなのだろうと検索しても「Poderosa」は出てこないんですよね。無期限無償で使えるけど一応ライセンス登録が必要なシェアウェアだし(というのを今サイト見て思いだした)、カスタマイズが可能な安定したフリーウェアを探しがちなエンジニアからは敬遠されているのかも知れません。いや、良いソフトウェアなんですけどね。使い勝手良いし安定してるし。 そのまま使い続けても良かったんですけど、今回は色んなものを技術的にもシステム的にもアップデートしていこうという方針で取り組んでいるので、使うツールや環境面も変えていくことにし、検索した中で一番評判が良かった(というか安定していた)「mintty」を採用することにしました。UIをカスタマイズしない状態ではWindowsに付属しているコマンドプロンプトとあまり変わらないんですけど、使ってみると道具として実に良い。Linuxのシェルに慣れていることもあってとても使いやすい。これ以上に尖ったソフトウェアはあるでしょうけれど、「これを入れておけば間違いない」って言われる理由はわかる気がします。デザインに凝りたいのであれば別ですけど、開発を行う上ではこれがあれば十分です。 なるほどなー。

続きを読む

【メモ】Amazon SESでメールが送信出来ないとき

メールが送信出来ないにもいろいろ原因は考えられるでしょうが、特にプログラムをいじってないのに送信出来なくなった場合は、サーバの時間がズレていることが多いです。特にオンオフを頻繁に行うローカルの仮想サーバだと、10分とか平気でズレてたりします。 で、ローカルのサーバはすぐに直してすぐに動作確認に使いたいので、次の手順を踏んで直します。

sudo /etc/init.d/ntpd stop
sudo ntpdate ntp.nict.jp
sudo /etc/init.d/ntpd start

「the NTP socket is in use, exiting」エラー

時間がズレているからといって、サーバが修正を試みていないとは限らなくて、このエラーの意味は「今直してるから待って」ということみたいです。ntpdは一気に戻すんじゃなく少しずつ戻すんですね。 Linuxサーバの時刻設定手順とエラー(the NTP socket is in use, exiting) というわけで一回停止して調整、再度起動してやれば綺麗に直せます。 まあ、サービス提供中の本番環境でやることはないとは思いますけども。

続きを読む

【メモ】gitコマンドも省入力

ノートパソコンと観葉植物 これつながりで。 【メモ】シェルスクリプトを省入力で実行する | mutter 打ち込む回数の多いgitコマンドも省入力にしてしまいたいなあと思っていたんですけど(前世の記憶で出来るような気がしてたけど思い出せなかった)、なるほどエイリアスを設定すれば良いんですね。 よく使うgitコマンドのエイリアスを設定して開発効率をアップする – Qiita

続きを読む

【メモ】シェルスクリプトを省入力で実行する

ノートパソコンと観葉植物 毎朝、出勤したら実行するスクリプトってありますよね。仮想環境の起動とか。PCの起動と合わせればいいのかも知れないけど、タイミング取るのめんどくさいし、そもそもPCつけっぱな時も多いし、結局手で打つんですけど、なんか楽できる方法ないのかなと思ったら、シェルスクリプトってファイル名だけで実行できるように出来るんですね。 ○○.shを./○○.shで実行できるようにする – Qiita

続きを読む

【メモ】 CUIに実行ログを書き出す(1行を上書きしていく) 【PHP】

やりたいこと

フレームワークのタスクなどを実行する際に、きちんと進行しているかインジケータを表示させたい。ただし、処理数分だけ行数を重ねるのではなくて1行に上書きしていきたい。上手く説明できなくて歯がゆいんですけど、つまりこうではなくて、
doSomething ...  1/5
doSomething ...  2/5
doSomething ...  3/5
doSomething ...  4/5
doSomething ...  5/5 finished
こう。
doSomething ...  5/5 finished ← この行だけで更新されていく
わかりますかね…

続きを読む

WindowsXP上でCentOSを動かす【VirtualBox】

Windows上の開発環境は今までXamppを入れてWindowsベースでやってきたんだけど…いろいろと無理を感じてきたので、今さらながら仮想環境を作ることにした。まぁ、昔はデザインとコーディングメインだったからあんまり困らなかったんだよね。 利用したのはVirtualBox[1]。 参考にしたエントリはこちら。 VirtualBox 2.2 と CentOS 5.3 でローカル開発環境 – もやし日記 VirtualBoxで仮想化を始めるための、もっともシンプルなチュートリアル – Unix的なアレ インストールの手順については、上記エントリを参照することでほぼ問題ないと思う。 CentOSの環境設定については以下を参考にした。 CentOSの開発環境を整える[to-R] 以下、メモ書き。

続きを読む

VMware Serverはなんか合わなかった

今までWindowsにApache入れてやってきたんだけど、テストしたいモジュールが入らなかったりしていい加減Windowsではどうだってのが面倒になってきたので、仮想環境を作ることに。仮想つったらVMwareかなぁと漠然と思って調べてみたら、OSのISOイメージがあれば無償板のVMware Serverで動かせるみたいなんで、調べて一通りやってみたんですが…なんか合わなかった。 2.x系のインターフェイスについては百式の田口さんが酷評していて、まーさすがに田口さんの言うことなんで実質的にどうかよりも思い入れ強そうだしなぁと思ってそのままVMware Serverを入れてみたのだけど…なんだろう。インターフェイスについては別にあんなもんだろうと思います。何をすべきかは初めて見てもわかるし、右クリックなんか別に要らないし、特に困ることはなかったんだけど、動作が不安定な気がするんだよねぇ…エラー吐き過ぎとかエラー吐いて立ち上がらなくなるとか。ネットワーク周りの接続が上手くいかないとか(これは僕がよく解ってないせいだけど)。インストールの手続きも面倒なんでなんか余計に。 そういうわけでVMware Serverは止めて、VirtualBoxを試してるんだけど、うん、こっちは良さそう。とりあえずCentOSインストールして開発環境作成中。。その辺のメモ書きはまた後日。

続きを読む