Memo/Linux/rootsh

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

rootsh


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

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

  • 無限ループでbashプロセスが起動する
  • scpの場合に、コピーできない
  • /etc/profile.d/rootsh.sh
    if [ -n "$SSH_CLIENT" ]; then
      TOPPROCESS_JUDGE_TOKEN='sshd:'
    else
      TOPPROCESS_JUDGE_TOKEN='login'
    fi
    
    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
      /usr/bin/rootsh --no-logfile
      exit
    fi

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

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

インストール

sudo yum install rootsh --enablerepo=epel

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

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-09-15 (土) 07:31:38 (8d)