AWS で構築したのだよ「ユーザーのコンソール操作をログとして残したい」
ユーザのコンソール操作をログに残したい ec2で自分のインスタンスIDが知りたい ec2で自分についているタグを読み取りたい ec2起動時にホスト名を変更したい ec2起動時にクラウドウォッチに追加したい Amazon LinuxのsshをユーザID/PWに変更したい。 VPNのプライベートネットワークでNTPを使いたい プライベートネットワークのRDSにssh経由で接続したい 夜間にec2を落としたい サーバーのシャットダウン時にログを退避したい プロセス監視、メモリ残、ディスク使用率をCloudwatchに追
加したい nginxで名前解決を都度行いたい
お品書き
事前準備①script コマンドにセット ID モードを使用するように変更
sudo chmod ug+s /usr/bin/script② ログを記録する場所を作成
sudo mkdir /var/log/termsudo sudo chmod 750 /var/log/term
ユーザのコンソール操作をログに残したい (1/3)
script コマンドをログイン時に実行するように設定~/.bash_profile を変更し、ログイン時に script コマンドを実行する。
ログの格納場所/var/log/term/
ログのファイル名termlog_$USER.$(date +%Y%m%d%H%M%S).log例 .termlog_root.20140128120253.log
ユーザのコンソール操作をログに残したい (2/3)
$ sudo vi /etc/skel/.bash_profile
# .bash_profile
# Get the aliases and functionsif [ -f ~/.bashrc ]; then . ~/.bashrcfi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATHexport PS1="[\u@\h \W]\\$ "
script -afq /var/log/term/termlog_$USER.$(date +%Y%m%d%H%M%S).log
exit 0
下記のように /etc/profile に記載しておくと、ログインの度に .bash_profileを配布します。ユーザが自分の .bash_profile を書き換えても、上書きします。
$ vi /etc/profilecp -f /etc/skel/.bash_profile ~
ユーザーがログインすると/etc/profile~/.bash_profile
が順番に呼ばれる。.bash_profile がない場合
~/.bash_loginさらに .bash_login が無い場合は
~/.profileが呼ばれます。~/.bashrc は、プロセスとして bash を起動したときに読み込まれます。プロセス起動ごとに設定したい場合はここに記載します。
補足 .bash_profile
/etc/skel/ にファイルを配置しておくとユーザ追加時に /etc/skel 以下と同じ構成のユーザディレクトリを作ってくれます。
補足 /etc/skel/
保存期間を決めて、古いログは削除するようにする
$ sudo crontab -e0 2 * * * find /var/log/term -daystart -maxdepth 1 -name "*.log" -mtime +365 -exec rm {} \;
ユーザのコンソール操作をログに残したい (3/3)