我们有一个 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
答案1
默认情况下,sftp 不会在系统日志中记录传输的文件,只会记录连接断开的情况。
它可以启用用于未来的交易,但这可能无法帮助您解决当前的问题 - 但它可能会解决未来的问题。