可以使用Jailkit
Jailkit 实际上是在指定的目录(下文称“监狱”)中,组建了一个小型的、完备的linux环境,涵盖了linux运行所最基础的文件(不包括引导和启动),用户登陆时,使用chroot将根目录设置成“监狱”目录,从而隔离与主机的联系,所做的操作都是在“监狱”中进行。当然,登陆的用户不可以拥有root权限。
以下分三个步骤介绍 Jailkit 的使用
一、安装与部署Jailkit
1、从官网 http://olivier.sessink.nl/jailkit/ 下载最新的Jailkit,安装过程非常简单,完全通用的步骤:解压缩并进入目录、./configure、make、make install。
2、安装完毕,就可以部署Jailkit 路径了(建立“监狱”)。以下操作均使用root用户进行。
a ) mkdir -p /opt/jail && cd /opt/jail 这一步是建立监狱目录,这里选择了在opt中建立监狱,在任何可写的目录中进行皆可。
b)jk_init -v /opt/jail/ jk_lsh basicshell jk_init 是初始化监狱文件,后边的 jk_lsh、basicshell是两个程序集,包含了linux 监狱所需的基础文件,以后如果有需求,也可以逐渐增加其他程序集
二、新增一个用户test,并将用户丢进“监狱”
1、useradd test && passwd test 并输入两次密码。
2、jk_jailuser -j /opt/jail/ -s /bin/bash test 接下来会询问是否拷贝home文件,选择y并回车。
三、验证
1、找一台远程机器,用ssh验证: ssh test@192.168.1.174
2、或者本地测试也可: su test
登录成功后,此时查看根目录(cd / )即可发现,根目录就是你的/opt/jail ,而原来的本地上的根目录已经不可见,由此,test用户便成功在“监狱”中运行了,你可以给他一些指定的程序集比如ssh、sftp等。
四、备注
1、Jailkit 还有很多其它的功能,这里只是介绍了基础的功能
2、如果登录成功后立即显示 Connection closed,那可能是配置bash出了问题,查看/opt/jail/etc/passwd 文件,看是否有这一行:
test:x:500:500::/home/test:/bin/bash
如果最后一个值为 /usr/sbin/jk_lsh,则将其成上边的形式。
网友回复
python如何实现torrent的服务端进行文件分发p2p下载?
如何在浏览器中录制摄像头和麦克风数据为mp4视频保存下载本地?
go如何编写一个类似docker的linux的虚拟容器?
python如何写一个bittorrent的种子下载客户端?
ai能通过看一个网页的交互过程视频自主模仿复制网页编写代码吗?
ai先写功能代码通过chrome mcp来进行测试功能最后ai美化页面这个流程能行吗?
vue在手机端上下拖拽元素的时候如何禁止父元素及body的滚动导致无法拖拽完成?
使用tailwindcss如何去掉响应式自适应?
有没有直接在浏览器中运行的离线linux系统?
nginx如何保留post或get数据进行url重定向?