Memo/Linux/rootsh

http://dexlab.net/pukiwiki/index.php?Memo/Linux/rootsh
 

rootsh


/etc/profile.d/ 以下へ配置する

全ログインユーザのログを取得しようとした場合、単純にrootshを起動させようとすると、以下の不具合が出る。これはscriptを使った場合と同じであるので、同じ対処が使える

  • 無限ループでbashプロセスが起動する
  • scpの場合に、コピーできない
  • /etc/profile.d/rootsh.sh
    1. if [ -n "$SSH_CLIENT" ]; then
    2.   TOPPROCESS_JUDGE_TOKEN='sshd:'
    3. else
    4.   TOPPROCESS_JUDGE_TOKEN='login'
    5. fi
    6.  
    7. if [ ! -z "$(ps -eo 'pid,args,tty' | awk -v pid=$PPID -v args=$TOPPROCESS_JUDGE_TOKEN '{if ($1 == pid && $2 == args && $3 ~ /@pts/) print $1,$2,$3}')" ]; then
    8.   /usr/bin/rootsh --no-logfile
    9.   exit
    10. fi

rsyslogで /var/log/rootsh/rootsh.log へまとめる

  • 「& ~」がポイント。これが無いと「/var/log/messages」に同じメッセージが出る
    1. sudo bash -c "echo -e 'local5.notice /var/log/rootsh/rootsh.log\n& ~' > /etc/rsyslog.d/rootsh.conf"
    2. sudo service rsyslog restart
    3.  
    4. sudo vim /etc/logrotate.d/rootsh
    5. ----
    6. /var/log/rootsh/*.log {
    7.     daily
    8.     missingok
    9.     notifempty
    10.     compress
    11.     su root root
    12. }
    13. ----
    14.  
    15. sudo rootsh --no-log
    16. # exitで終了

インストール

  1. sudo yum install rootsh --enablerepo=epel
  2.  
  3. rpm -q rootsh
  4. rootsh-1.5.3-11.el6.x86_64
  5. rootsh --version
  6. # 1.5.2と出る
  7. rootsh version 1.5.2
  • デフォルトでは「/var/log/rootsh/<user>.<YYYYMMDDhhmiss>.<xxxx>」のようにユーザ別にファイルが作成される。
    1. sudo rootsh
    2. # exitで終了

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-04-28 (金) 11:55:08 (481d)