こんにちは、stackexchangeの皆さん、
特定のログファイルの場所を見つけるのに少し難しいことがあります。ここで誰かが私を助けることができることを願っています。
私がやりたいことは、SFTPサーバー上の特定のユーザーのログイン日時をリストすることです。これまでのオンライン調査で見つけました
cat /var/log/auth.log | grep "username"
いくつかのログインがリストされていますが、私が探しているものとは異なります。
私も試しました
last -n 1000 | grep "username"
しかし、残念ながら、これはsftpではなくサーバーへのsshアクセスでのみ機能するようです(私が知っている限り)
SFTPユーザーに対する特定のユーザーのログインを一覧表示する別の方法を考えることができる人はいますか?
よろしくお願いします、ダーク様。役に立つと、ユーザーは自分のホームディレクトリにルートを指定します。
編集する:
最初は気付かなかったアーカイブファイルがいくつかありましたが、これによりログイン時間が最大1ヶ月程度与えられてより良いです。新しい質問:CentOはデフォルトでアーカイブされた認証ログをどのくらい保持しますか? 1か月を超えると、古いアーカイブはどこに移動しますか? logrotate.confを確認しましたが、これについては言及していないので、/var/log/auth.log
デフォルト値を使用するとします。
編集する: 編集する 私が探している答えを見つけたかもしれませんが、他の人に役立つようにこの記事を投稿してください。
logrotateスクリプトは/etc/logrotate.d/rsyslog
デフォルトでこれらのログは毎週置き換えられ、最大4週間のログを保存します。
まだ回答をいただくほど評判はありませんが、管理者がこの記事を見たら楽に閉じてください。
よろしくお願いします〜ダークネス
答え1
CentOS 6 には/var/log/secure
sftp サブサーバーを起動する sshd の出力が含まれています。デフォルトでは、次のようなメッセージが表示されますが、それ以上は表示されません。
Feb 25 12:34:56 server sshd[1234]: Accepted password for user from 1.2.3.4 port 12345 ssh2
Feb 25 12:34:56 server sshd[1234]: pam_unix(sshd:session): session opened for user user by (uid=0)
Feb 25 12:34:57 server sshd[1234]: subsystem request for sftp
SFTP操作(転送されたファイルなど)をより明確にするには、次の行を編集してください/etc/ssh/sshd_config
。
Subsystem sftp /usr/libexec/openssh/sftp-server
~になる
Subsystem sftp /usr/libexec/openssh/sftp-server -f AUTHPRIV -l INFO
その後、SSHを再起動してください。
# service sshd restart
これにより、基本ログと次のログが生成されます。
Feb 25 12:34:56 server sftp-server[1234]: session opened for local user user from 1.2.3.4
Feb 25 12:34:56 server sftp-server[1234]: opendir "/home/user/"
Feb 25 12:34:56 server sftp-server[1234]: closedir "/home/user/"
Feb 25 12:34:56 server sftp-server[1234]: open "/home/user/test" flags READ mode 0666
Feb 25 12:34:56 server sftp-server[1234]: close "/home/user/test" bytes read 1234 written 0
Feb 25 12:34:56 server sftp-server[1234]: session closed for local user user from 1.2.3.4