Linux

我们有时会遇到这样的需求,限制一个Linux用户,让他只能在指定的目录下进行添加、修改、删除操作,并且只能使用sftp登录服务器,不能用ssh操作。这些可以通过配置sftp服务实现。

创建新用户www,禁止ssh登录,不创建家目录

[root@local ~]# useradd -s /sbin/nologin -M www
[root@local ~]# passwd www
更改用户 www 的密码 。
新的 密码:
passwd:所有的身份验证令牌已经成功更新。

创建用户的根目录,用户就只能在此目录下活动

mkdir /var/www

设置目录权限,目录的权限设定有两个要点:
目录开始一直往上到系统根目录为止的目录拥有者都只能是root
目录开始一直往上到系统根目录为止都不可以具有群组写入权限

[root@local ~]# chown root:root /var/www
[root@local ~]# chmod 755 /var/www

如果是777,www用户就可以新建文件夹。如果是755,www用户就不可以新建文件夹。

配置sshd_config

vim /etc/ssh/sshd_config

修改一下内容

# Subsystem     sftp    /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match User www
ChrootDirectory /var/www
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

重启sshd服务

systemctl restart sshd.service

创建目录测试

[root@local ~]# mkdir /var/www/tpadmin
[root@local ~]# chown www:www /var/www/tpadmin
[root@local ~]# chmod 777 /var/www/tpadmin

原文地址:https://www.cnblogs.com/jiqing9006/p/8243161.html