Sftp
SFTP 上傳後拒絕刪除
我想阻止使用者刪除他們上傳到我的 sftp 伺服器的文件。我知道我可以使用 inotify/dnotify(或 pam 掛鉤)和 lsof 設置自己的解決方案,它會觸發腳本執行某些操作,例如
chattr +i $filename
在文件上傳和關閉之後。但我想知道是否有一些東西已經作為功能或解決方案已經過審查和可用,但我不知道。目前的設置是我正在使用 openssh sftp 並且使用者在連接時會被監禁。
查看 lsyncd(http://code.google.com/p/lsyncd/)。它將為您的解決方案提供 inotify=>action 部分。它看起來像這樣:
cat /etc/lsyncd.conf settings { logfile = "/var/log/lsyncd.log", statusFile = "/var/run/lsyncd.status", nodaemon = false, insist = true, } -- config action my_config = { delay = 10, maxProcesses = 1, onCreate = "chattr +i -R /path/to/dir/*", } sync { my_config, source="/path/to/dir/", } -- EOF
您可以更改 onCreate 操作以獲得更好的邏輯,也許執行一個腳本來查找上傳的文件並設置 chattr +i。