Linux仅可使用SFTP登录到指定目录(无法使用ssh、ftp、telnet)

目标:
1.用户appmon只能使用sftp登录,拒绝ssh、ftp、telnet等方式登录。
2.用户登录默认根目录为/shucang6/mpppoc/common,其父层目录不可见。
3.登录后子目录data01和software内所有文件与子目录,仅允许下载,不允许上传和修改。
4.登录后子目录result内所有文件与子目录,可允许下载、上传和修改操作。

操作方法:
1.使用root用户,新建目录并赋权

mkdir -p /shucang6/mpppoc/common
mkdir -p /shucang6/mpppoc/common

chmod 755 /shucang6
chmod 755 /shucang6/mpppoc
chmod 755 /shucang6/mpppoc/common

2.新增用户组appmon和用户appmon

groupadd appmon
useradd -d /shucang6/mpppoc/common -g appmon appmon
passwd appmon

3.修改sshd配置文件

cp sshd_config sshd_config.bak
vi /etc/ssh/sshd_config
----------------sshd_config----------------------------
#Subsystem sftp /usr/libexec/openssh/sftp-server #注释掉一行,不然修改后启动不了sshd服务
Subsystem sftp internal-sftp #修改为internal-sftp

#文件最后添加如下代码
Match User appmon #指定适用的用户,如何指定用户组改为Match Group 
ChrootDirectory /shucang6/mpppoc/common #设置chroot指定用户根目录,要求此目录及所有上级目录所属用户必须为root,且权限为755
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp #指定sftp命令,ssh不可以登录
----------------sshd_config----------------------------

4.重启sshd服务

service sshd restart

5.子目录操作权限设定

mkdir -p /shucang6/mpppoc/common/data01
mkdir -p /shucang6/mpppoc/common/software

chmod 755 /shucang6/mpppoc/common/data01
chmod 755 /shucang6/mpppoc/common/software

mkdir -p /shucang6/mpppoc/common/result
chown appmon:appmon /shucang6/mpppoc/common/result

参考文档:

Linux 限制SFTP用户目录和权限

Linux创建用户,SFTP只允许访问指定目录

相关推荐