首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Apache MINA SSHD阻止SFTP删除操作

Apache MINA SSHD是一个用于实现SSH服务器和客户端的Java库。它提供了一套API,可以轻松地构建自定义的SSH服务器和客户端应用程序。

要阻止SFTP删除操作,可以通过自定义SftpSubsystemFactory来实现。以下是一种可能的实现方式:

  1. 创建一个类,继承自org.apache.sshd.server.subsystem.sftp.SftpSubsystemFactory。
  2. 重写createSubsystem()方法,在方法中创建一个自定义的SftpSubsystem实例。
  3. 在自定义的SftpSubsystem实例中,重写remove(Path file)方法。在该方法中,可以根据需要实现阻止删除操作的逻辑。例如,可以抛出一个异常,或者直接返回false。

下面是一个示例代码:

代码语言:txt
复制
import org.apache.sshd.server.subsystem.sftp.SftpSubsystem;
import org.apache.sshd.server.subsystem.sftp.SftpSubsystemFactory;

public class CustomSftpSubsystemFactory extends SftpSubsystemFactory {
    @Override
    protected SftpSubsystem createSubsystem() {
        return new CustomSftpSubsystem();
    }
}

public class CustomSftpSubsystem extends SftpSubsystem {
    @Override
    public boolean remove(Path file) throws IOException {
        // 阻止删除操作的逻辑
        return false;
    }
}

使用自定义的SftpSubsystemFactory替换默认的工厂类,可以通过以下方式实现:

代码语言:txt
复制
import org.apache.sshd.SshServer;

public class SSHServerExample {
    public static void main(String[] args) throws IOException {
        SshServer sshServer = SshServer.setUpDefaultServer();
        sshServer.setSubsystemFactories(Collections.singletonList(new CustomSftpSubsystemFactory()));
        // 其他配置...

        sshServer.start();
    }
}

这样,当客户端尝试执行SFTP删除操作时,将会被阻止。

请注意,以上代码仅为示例,实际使用时需要根据具体需求进行适当的修改和扩展。

推荐的腾讯云相关产品:腾讯云服务器(CVM)、腾讯云对象存储(COS)。

腾讯云服务器(CVM):https://cloud.tencent.com/product/cvm

腾讯云对象存储(COS):https://cloud.tencent.com/product/cos

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

linux如何sftp端口,CentOS如何更改SFTP端口

SFTP(SSH文件传输协议)是一种安全文件协议,用于通过加密连接在两个主机之间传输文件。本文介绍了如何在Linux中更改默认的SFTP端口。我们还将向您展示如何配置防火墙以允许在新端口上使用。...SFTP(SSH文件传输协议)是一种安全文件协议,用于通过加密连接在两个主机之间传输文件。它还允许您对远程文件执行各种文件操作并恢复文件传输。 SFTP可以替代旧版FTP协议。...本文介绍了如何在Linux中更改默认的SFTP端口。我们还将向您展示如何配置防火墙以允许在新端口上使用。 不要将SFTP与FTPS混淆。两种协议具有相同的目的。...使用文本编辑器打开文件: sudo vim /etc/ssh/sshd_config 搜索以开头的行Port 22。通常,使用hash(#)符号将该行注释掉。...删除哈希#并输入新的SSH端口号: / etc / ssh / sshd_config Port 4422 编辑配置文件时要非常小心。错误的配置可能会阻止SSH服务启动。

13.1K40
  • 前端javascript如何阻止按下退格键页面回退 但 不阻止文本框使用退格键删除文本

    这段代码可以: document.onkeydown = function (e) { e.stopPropagation(); // 阻止事件冒泡传递 e.preventDefault...(); // 阻止浏览器默认事件的发生 // your code if (e.keyCode == 8) { // keyCode == 8 表示按下的回退按钮...} } 下面更正一下,上面的写法有一个比较严重的问题: 这种写法虽然屏蔽了回车键页面回退的功能,但同样,如果该页面有文本输入框,那么这个输入框将不能使用 退格键 进行文本删除; 下面给出一种网上搜索的...既能屏蔽页面退格键回退 ,又不屏蔽 退格键删除 功能的代码,感谢网上盆友的分享,因为有好几个博客都能找到同一段代码,所以无法确定谁是原创: <script type="text/javascript"

    1.9K30

    Rocky Linux 8.3 RC1 OpenSSH升级至openssh-8.6p1

    该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。 OpenSSH 8.3p1及之前版本中scp的scp.c文件存在操作系统命令注入漏洞。.../usr/sbin/sshd.bak # 如果您是第一次升级,备份/etc/init.d/sshd时会不存在,不影响后续操作 [root@localhost ~]# mv /etc/init.d/sshd...Apr 2020 禁用SCP与SFTP 有时候OpenSSH会出现一些其它漏洞,如OpenSSH 8.3p1及之前的版本,会存在scp漏洞等,建议禁用sftp及scp,详细操作如下: # 禁用sftp...~]# cat /etc/ssh/sshd_config | grep sftp #Subsystem sftp /usr/libexec/sftp-server # 因为禁用scp...是一件麻烦的事情,可以直接删除scp命令或者重命名,相对来说更靠谱一些。

    2.3K41

    Linux学习从入门到精通

    文件上传、下载 在涉及 Linux 相关的开发中,经常需要进行 linux 和 Windows 之间的文件、 安装包等上传和下载操作sftp 和 lrzsz 是使用比较广泛的两种方式。...sftp为SSH 的其中一部分, 本身没有单独的守护进程, 使用 sshd 守护进程(端口号默认是 22)来完成相应的连接和答复操作 SecureCRT远程连接至CentOS后,按 alt+p 即可打开...说明: sftp中其它命令的使用方法,可以使用Help帮助命令查看 2.2、lrzsz lrzsz 是一款在 linux 里可代替 sftp 上传和下载的程序。...格式: grep [option] pattern [file] 可使用 -help 查看更多参数 使用实例: ps -ef | grep sshd 查找指定 ssh 服务进程 ps -ef |...-r:删除定时任务配置,从/var/spool/cron 目录中删除某个用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。

    2.5K20

    Ubuntu设置SFTP服务用户目录权限

    有时我们需要限制一个Linux用户,让他只能在指定的目录下进行添加、修改、删除操作,并且只能使用sftp登录服务器,不能用ssh操作。这些可以通过配置sftp服务实现。...xiaobai 配置sshd_config vim /etc/ssh/sshd_config 修改为下面内容,保存退出 #注释掉这行 #Subsystem sftp /usr/libexec/openssh.../sftp-server #添加在配置文件末尾 Subsystem sftp internal-sftp   #指定使用sftp服务使用系统自带的internal-sftp Match User xiaobai...重启sshd服务 service ssh restart  #不知道为什么service sshd restart命令无法使用 后面就是登录测试的过程,如果无法登陆,请注意目录权限设置 修改目录所有者和权限...xiaobai 免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:zbxhhzj@qq.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容

    3.2K10

    sftp端口改了ssh受影响吗_由于系统错误true端口上用户

    学习目标: 能够完成sftp服务的部署,且实现ssh和sftp的端口分离,不使用默认的端口,sftp用户的权限只可以访问该用户的家目录里的文件和其下的子目录,实现权限控制。...学习内容: SFTP是SSH的一部分,SFTP没有单独的守护进程,它必须使用SSHD守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像是一个服务器程序,而更像是一个客户端程序...检查sftp 服务是否可用​ 1.1、systemctl status sshd 1.2、systemctl status sftpd 系统内开启ssh服务和sftp服务都是通过/usr/sbin/sshd.../sysconfig/目录下的sshd文件,放到同目录,命名为:sftp cp /etc/sysconfig/sshd /etc/sysconfig/sftp 7、 拷贝/var/run/目录下的sshd.pid...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除

    99820

    ssh和sftp为什么是同一端口_ssh和sftp使用不同的端口

    sftp是基于ssh上实现的,所以严格来说我们是无法来关闭ssh,而只是使用sftp。 ssh默认使用的是22端口,当然这个端口是可以修改的。...1.2 应用场景 局域网中有两批用户:一批用户:可以通过ssh登录上我们的服务器 一批用户:可以使用sftp服务,但是我们不希望这些能够能通过ssh登录上来 这种情况怎么处理: 我们可以将sftp用户的单独分成一个组...,限制他们的操作,这个可以利用Rssh和Scponly或者实现。...为了满足这两批用户的需求,我们可以再开一个ssh服务,命名为sftpd.service, 并新开一个端口号(22220),限制22220上的ssh服务只能使用sftp服务,这里利用了ssh配置文件里面的...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除

    3.6K40

    SFTP 上传、下载文件

    SFTP为SSH的一部分, SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作SFTP传输提供了密码和密钥验证机制,可以有效防止传输过程的威胁和攻击。...在 RHEL 9 中安全复制协议(SCP)存在已知的安全漏洞已被弃用,远程拷贝文件推荐使用SFTP安全文件传送协议。...SFTP登录 密码登录 sftp -P 22 root@127.0.0.1 密钥登录 sftp -P 22 -i ~/.ssh/id_rsa root@127.0.0.1 SFTP Shell 基本操作...exit:退出SFTP会话 help:显示SFTP的帮助文本 限制SFTP用户其向上跨目录访问 SFTP是FTP over SSH的安全FTP协议,对于访问SFTP的用户建议使用专用账号,只能上传或下载文件...Subsystem sftp /usr/libexec/openssh/sftp-server -l INFO -f AUTH 2.文件最后添加参数 vim /etc/ssh/sshd_config

    1.7K10

    Centos下SFTP双机高可用环境部署记录

    其实在SSH软件包中,已经包含了一个叫作SFTP的 安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP...SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。...但是,由于这种传输方式使用 了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。...一、sftp-test01服务器操作: 1)查看openssh的版本 使用ssh -V 命令来查看openssh的版本,版本必须大于4.8p1,低于的这个版本需要升级。...--delete-before参数:表示rsync同步前,会先对目标目录进行一次扫描检索,删除目标目录中对比源目录的多余文件,然后再执行同步操作。显然比--delete参数安全些。

    3.1K90

    linux 启动ftp服务,sftp服务

    今天说一说linux 启动ftp服务,sftp服务,希望能够帮助大家进步!!!.../目录下: 命令 /etc/init.d/sshd start 注意这里需要在绝对路径下执行sshd start 开启root可以通过ftp软件连接的功能: 默认有一些用户是不能通过ftp连接服务器的...  文件user_list和ftpusers中的登录名列表被禁止  具体查看ftpusers,user_list文件的注释 系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了.../查看SELinux设置 # getsebool -a|grep ftp ftpd_disable_trans --> off 或者 ftp_home_dir-->off  解决方法: //使用...再次查看当前状态是否是on的状态 # getsebool -a|grep ftp ftpd_disable_trans --> on 或者 ftp_home_dir-->on //setsebool使用

    12.8K20

    Centos7搭建sftp服务流程

    /etc/ssh/sshd_config 修改: #Subsystem sftp /usr/libexec/openssh/sftp-server ##前面添加#号 末尾添加:(部分有的话修改就可以不用添加...) Subsystem sftp internal-sftp ##指定使用sftp服务使用系统自带的internal-sftp Match Group sftp ##匹配sftp组的用户,如果要匹配多个组...internal-sftp ##指定sftp命令 AllowTcpForwarding no ##用户不能使用端口转发 X11Forwarding no ##用户不能使用端口转发 设定sftp...、查看,并不能上传,删除,重命名 在sftp主目录下创建一个test文件夹,并设置所有者为website,用户组为sftp mkdir /var/www/html/uploads/test chown...restart sshd.service 注意:登录sftp,分为在linux和windows登录 linux:sftp website@ip地址 windows:并不自带sftp命令,只能通过下载

    2.6K21

    linux中禁用Root帐户的4种方法

    root账号 是 Linux 和其他类 Unix 操作系统上的超级帐户。此帐户可以访问系统上的所有命令和文件,并具有完全读取、写入和执行权限。...root用户拥有绝对权力,执行的任何操作都对系统至关重要。在这方面,任何错误由root用户可能对系统的正常运行产生巨大影响。此外,该帐户也可能因意外、恶意或人为无视规则而被不当或不当使用而被滥用。...禁用 SSH Root 登录 访问远程服务器或 VPS 的最常见方式是通过 SSH 并阻止 root 用户在其下登录,你需要编辑 /etc/ssh/sshd_config 文件。...> systemctl restart sshd OR> service sshd restart 你可能已经知道,此方法仅影响openssh 工具集,将阻止ssh、scp、sftp 等程序访问root...你可以通过 ftp 和电子邮件客户端等阻止对系统的 root 访问。 有关更多信息,请参阅相关手册页。 $ man pam_securetty$ man sshd_config$ man pam

    3.4K00

    SSH原理常见应用升级及端口转发

    SFX(xshell) 4) SFTP 基于SSH加密传输 # 4. samba,http,ftp,nfs # FTP工具:vsftp、proftpd、SFTP # linux sftp客户端登录sftp...# 3、生成密钥对 # 4、分发公钥到所有服务器 ssh-copy-id # 5、测试 远程连接ssh 远程执行命令ssh ifconfig # 远程拷贝文件scp rsync-e隧道模式 ssh常见操作...使用root进行操作 # rsync使用 rsync -avz hosts -e ‘ssh -p 22’youmen@192.168.43.159:~ # 可以增量备份 查看hosts主机系统版本 cat...on an x86_64 c login: youmen Password: Last login: Fri Jun 12 22:32:04 from centos-b [root@C ~]$ # 如何需要删除这个连接使用...路径 find / -name sshd.pid # 查看openssh现有版本 ssh -V # 使用rpm删除现有的openssh rpm -e --nodeps $(rpm -qa | grep

    1.8K40
    领券