当前位置: 首页 > 工具软件 > Singularity > 使用案例 >

singularity容器内root权限问题

濮升
2023-12-01

问题描述

今天使用容器化软件singularity用沙盒方式创建一个了一个ArchLinux的沙盒。

为什么创建ArchLinux的沙盒呢?是因为使用AUR可以直接安装Geant4,非常方便

但是天下没有免费的午餐,也没有免费的晚餐,还没有免费的宵夜。首先安装ArchLinux就非常费劲,其次即使用容器化直接build这个ArchLinux,也非常难搞。

在安装yay(AUR管理程序)的时候,发现singularity容器内的root是个非常头疼的问题,以sudo进入沙盒,root身份无法安装AUR程序,非root身份进入沙盒,更是无法安装AUR。

解决办法只有一条:创建新用户,给它root权限。

解决办法

刚刚已经说了思路,现在看具体实现:

1. 进入沙盒

sudo singularity shell -w archlinux

2. 创建用户

pacman -Sy  
pacman -S sudo
pacman -S vim 
EDITOR=vim visudo
## 修改打开的文件的第82行(目前是)
## 去掉%wheel ALL=(ALL)ALL的注释

useradd -m -G wheel archzhaoww
passwd archzhaoww
## 输入密码

## 切换到刚刚创建的目录
su archzhaoww

然后就能正常安装软件了,如果要你输入root权限密码,那就把刚passwd设置的密码输入上去

 类似资料: