当前位置: 首页 > 科技观察

Linux如何限制指定账户不能SSH只能SFTP在指定目录

时间:2023-03-14 18:43:53 科技观察

linux如何限制指定的账号不能SSH,只能指定目录下的SFTPplan。下面限制sftp用户组只能通过sftp连接到指定目录(/projects/tms_prod),ssh连接提示只接受sftp连接。方案的具体过程如下:1、创建用户和目录:mkdir-p/projects/groupaddsftp#新建组useradd-gsftp-s/bin/falsetms-d/projects/tms_prod#新建用户passwdtmschownroot:sftp/projects/#修改主目录所属用户和组chmod755/projects/#主目录权限mkdir-p/projects/tms_prod#为用户创建子目录chowntms:sftp/projects/tms_prod#修改子目录用户和组chmod755/projects/tms_prod#子目录授权2.Configuresshd_configSubsystemsftpinternal-sftp#指定使用sftp服务使用系统自带的internal-sftp#MatchUsertmsMatchGroupsftpChrootDirectory/projects/X11Forwardingno#禁止X11转发AllowTcpForwardingno#Forbidtcpforwarding-ForceCommand指定sftp命令,不能ssh连接注意:由ChrootDirectory指定的目录开头到系统根目录的目录所有者只能是root。ChrootDirectory指定的目录从头开始向上到系统根目录,不能有组写权限。3、重启ssh服务:servicesshdrestart4。测试验证补充:1.subsystemsftp/usr/lib/openssh/sftp-server更像是internal-sftp,两者有什么区别?简单的说,默认的sftp进程由一个单独的二进制文件组成:/usr/lib/openssh/sftp-server启动,而internal-sftp则不需要外部二进制文件来启动一个额外的进程,集成在sshd进程中.与/usr/lib/openssh/sftp-server相比,internal-sftp有以下优点:性能好,不需要额外的进程;安全性好,用户无需登录shell,可使用ChrootDirectory限制sftp的活动目录;sftp-服务器的存在主要是为了向后兼容。2.ChrootDirectory目录通常有问题的ChrootDirectory目录。这个地方的目录不能直接配置到目标目录,需要配置到它的上层;即对/A/B/C的C目录做chroot,对C目录是可以读写的,所以C目录不能作为ROOT目录,应该chrootB目录。