我们有一个 SFTP 服务器,我试图找出某些特定文件是否已从服务器中删除,或者它们是否已导入服务器。我正在浏览 /var/log 下的日志文件,但到目前为止还没有找到相关的日志。
我想知道在哪个日志文件中可以找到这样的信息?
任何帮助,将不胜感激。
更新:
根据答案和链接:在此处输入链接描述 我已经修改了配置文件,其中部分如下所示:
Subsystem sftp internal-sftp -f AUTH -l INFO
# Force sftp and chroot jail for members of sftp group
Match group sftp
ForceCommand internal-sftp
ChrootDirectory /sftp/%u
# Members of sftp-glob have access to all user folders
Match group sftp-glob
ForceCommand internal-sftp
ChrootDirectory /sftp
# Enable this for more logs
LogLevel VERBOSE
然后重启sshd:
sudo systemctl restart sshd
在这种情况下,我只能在 /var/log/auth.log 下看到管理员用户(我)创建的日志
Jan 17 12:57:50 ios-sftp internal-sftp[5262]: remove name "/tmp/test.txt"
为了记录 chrooted 用户的操作,我已经这样做了:
cd /sftp
sudo mkdir dev
sudo chmod 755 dev
sudo touch dev/log
sudo mount --bind /dev/log dev/log
但是,如果他们上传或删除文件,我仍然看不到其他用户登录 /var/log/auth.log。
通过将 ForceCommand internal-sftp 更改为 ForceCommand internal-sftp -f AUTH -l INFO 修复配置文件后,它开始工作
Subsystem sftp internal-sftp -f AUTH -l INFO
# Force sftp and chroot jail for members of sftp group
Match group sftp
ForceCommand internal-sftp -f AUTH -l INFO
ChrootDirectory /sftp/%u
# Members of sftp-glob have access to all user folders
Match group sftp-glob
ForceCommand internal-sftp -f AUTH -l INFO
ChrootDirectory /sftp
# Enable this for more logs
LogLevel VERBOSE
现在我可以看到 /var/log/auth.log 下的日志:
Jan 18 10:13:02 user-sftp internal-sftp[7466]: set "/folder1/folder2/myfile.xml" modtime 20210106-10:32:58
默认情况下,sftp 不会将传输的文件记录在系统日志中,仅会断开连接。
可以为未来的交易启用它,但这可能无法帮助您解决手头的问题 - 但它可能会在未来解决它。