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 执行,然后按照提示下载相关文件
脚本没有设置中国优化镜像,可能导致下载缓慢,可以自行替换相关镜像
当你运行过一次后,在执行的目录下运行以下命令即可再次启动容器

手动安装

对于部分无法使用脚本的场景可以使用手动安装
  1. 下载相关文件
    1. rootfs.xz.tar:容器的系统文件,相当于系统镜像
      proot:proot二进制可执行文件,由于非root环境无法使用apt,故使用此方法,该镜像提取自debian系统,可能导致不兼容
  1. 解压rootfs
    1. 在目录下创造一个用于存放系统文件的文件夹(相当于模拟容器的根目录)
      解压
  1. 启动
    1. 赋权:
      启动容器
      如果此时没有报错,说明你已经进入容器了,使用id可看到已经是root权限
  1. systemctl解决方案
    1. 由于proot的限制,无法使用默认的systemctl,可使用python代替
      安装python2:
      替换systemctl
      现在可以使用systemctl了,不过无法自动运行服务,下次启动需要自行systemctl start
Gametame - 免费获得礼品卡使用WireGuard在VPS上套一层VPN
Loading...