type
status
date
slug
summary
tags
category
icon
password
在使用Replit等容器或没有sudo权限的Shell等情况下,想要运行apt来安装软件、使用systemctl设置服务等都是非常麻烦的,那么有没有方法能使其更简单呢。
proot通过虚拟化文件系统和修改系统调用来模拟root权限,允许在非特权用户环境中运行需要root权限的应用程序。
本文将介绍如何使用proot模拟root权限,方便在容器中使用root权限的程序
使用一键脚本
由于步骤较为繁琐,我写了一键脚本,方便使用
注意,需要已经安装curl,如果没有,请手动下载并上传proot.sh到目标机器内,使用
bash proot.sh
执行,然后按照提示下载相关文件脚本没有设置中国优化镜像,可能导致下载缓慢,可以自行替换相关镜像
当你运行过一次后,在执行的目录下运行以下命令即可再次启动容器
手动安装
对于部分无法使用脚本的场景可以使用手动安装
- 下载相关文件
rootfs.xz.tar:容器的系统文件,相当于系统镜像
proot:proot二进制可执行文件,由于非root环境无法使用apt,故使用此方法,该镜像提取自debian系统,可能导致不兼容
- 解压rootfs
在目录下创造一个用于存放系统文件的文件夹(相当于模拟容器的根目录)
解压
- 启动
赋权:
启动容器
如果此时没有报错,说明你已经进入容器了,使用
id
可看到已经是root权限- systemctl解决方案
由于proot的限制,无法使用默认的systemctl,可使用python代替
安装python2:
替换systemctl
现在可以使用systemctl了,不过无法自动运行服务,下次启动需要自行
systemctl start
- 作者:Sakura Homura
- 链接:https://endercat.eu.org/article/351e630e-1fe1-4607-bb6d-ef571bbd4d09
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章