![Centos SSH 和 SFTP 用户限制到特定目录](https://linux22.com/image/164408/Centos%20SSH%20%E5%92%8C%20SFTP%20%E7%94%A8%E6%88%B7%E9%99%90%E5%88%B6%E5%88%B0%E7%89%B9%E5%AE%9A%E7%9B%AE%E5%BD%95.png)
我正在管理运行 Cantos 7 的服务器。一些用户通过 ssh/sftp 登录服务器进行开发。我为他们创建了一个用户devel
。出于安全原因,我需要将它们限制在某些目录中。他们应该能够:
- 仅运行基本命令,例如
cd
、ls
、cp
、cat
、mv
、mkdir
、rmdir
等。 - 运行诸如
java
、等程序gcc
。python
devel
以完全权限 ( )访问主目录 (rwx
)/mnt/dataspace
以完全权限访问已安装的硬盘驱动器(rwx
)- 以完全权限访问
/usr/lib
、/usr/src
和其他一些目录 (rwx
)
我想防止devel
:
- 访问所有其他目录,例如
/
、/boot
、/etc
、/opt
等/var
。 - 访问某些服务/守护进程,例如
httpd
、等。sshd
mysqld
- 运行任何命令(除了上面的基本命令),例如
systemctl
。
我不希望这些目录(例如,/
等)向他们显示,或者至少禁用对它们的访问。/etc
/var
可以做吗?我在这里阅读了许多问题,还阅读了许多有关 ACL 和 Chroot Jail erc 的其他文章、论坛和博客。例如这,这,这,这,这,这,这,这,这,这,这但他们都没有帮助我实现我需要做的事情。
任何帮助或建议都将不胜感激,我迫切需要帮助。
答案1
您可以使用 rbash 或 rssh 等受限 shell 来限制用户的能力。 (或者 VirtFS/jailshell,如果您愿意的话。)下面是 RH 中关于使用 rbash 的示例: