请稍候...
确定
取消
  • CentOSlogo

    CentOS

    CentOS,脱胎自大名鼎鼎的Redhat.稳定可靠,深受中文用户的喜爱
  • CentOS7配置SFTP-ONLY访问

      时间:2016-05-19 23:28:31

      阅读:841 回复:0 A- A+

      CentOS中一般建议用SSH远程访问,但是有时项目需要我们只希望用户可以访问服务器上的文件,但不能登陆服务器从而进行一些越权操作,也就是不能SSH登陆,但是可以通过SFTP进行文件传输,我们可以通过以下配置可以进行控制。

      步骤1:我们创建一个专用的sftp用户组和一个专门的sftp用户

      groupadd sftpusers
      useradd -G sftpusers -s /sbin/nologin user1
      passwd user1
      sftpusers是一个专用的SFTP组、用户user1是一个专用的SFTP用户,并且不允许使用SSH登录系统。

      步骤2:修改sshd服务的配置

      打开sshd服务配置文件:

      vi /etc/ssh/sshd_config
      找到这行:

      Subsystem sftp /usr/libexec/openssh/sftp-server
      替换为:

      Subsystem sftp internal-sftp
      将下面的代码添加到文件的结尾,其中用户组名sftpusers应该和你前面指定的一样哦

      Match Group sftpusers
      X11Forwarding no
      AllowTcpForwarding no
      ChrootDirectory %h
      ForceCommand internal-sftp
      保存退出并重新启动sshd服务以使得更改生效。

      步骤3:创建一个专用的SFTP用户目录

      你需要指定SFTP-ONLY用户目录,确保用户只能在这个目录进行一些操作:

      chown -R root /home/user1
      chmod -R 755 /home/user1
      mkdir /home/user1/files
      chown user1. /home/user1/files
      到这里,用户user1只能上传/下载目录/home/user1/files目录的文件,他或她不能登陆不能越权查看或操作其它用户文件.

      步骤4:我们创建更多的SFTP-ONLY用户(如果你需要创建更多的用户,只需重复步骤即可)

      useradd -G sftpusers -s /sbin/nologin user2
      passwd user2
      chown -R root /home/user2
      chmod -R 755 /home/user2
      mkdir /home/user2/files
      chown user2. /home/user2/files

      到这里,我们上面设置的用户账户仅仅只能在SFTP中使用自己的目录,而无法登陆系统或越权访问.

      关于SFTP-ONLY设置就讲到这里先.

      网友观点 文明社会,理性发言,和谐讨论

        暂无网友互动记录!

    发表我的看法(70字以内)