第27节 unshare 和 newuidmap
❤️💕💕记录sealos开源项目的学习过程。k8s,docker和云原生的学习。Myblog:http://nsddd.top
[TOC]
对比
unshare 和 newuidmap 是 Linux 的系统调用,它们主要用于实现命名空间隔离。
unshare
: unshare 允许进程在运行时创建和隔离新的命名空间。例如,可以使用 unshare 创建一个新的 PID 命名空间,从而使一个进程在新的命名空间中运行,并且与原来的命名空间隔离。newuidmap
: newuidmap 工具用于在容器中控制用户 ID 映射,这是实现容器的必要步骤。在容器中,需要在主机和容器间进行用户 ID 的映射,以便使容器中的进程具有访问文件系统的权限。
总体来说,unshare 可以创建命名空间隔离,而 newuidmap 则用于实现容器隔离中的用户 ID 映射。
实现 sealer 对 buildah 得调用,sealer 在 root less 模式下的正常挂载;buildah是如何启动rootless容器的。
about newuidmap
newuidmap - 设置用户命名空间的 uid 映射
about unshare
create a new PID:
unshare -U bash
runuseer
runuser - 使用替代用户和组 ID 运行命令
runuser [选项] -u用户[[--]命令[参数...]]
runuser [选项] [ - ] [用户[参数...]]
命令runuser更改运行命令的用户。runuser类似于su命令,但略有不同。
只有root用户可以调用runuser。因此,它不会提示输入密码。这种行为非常适合脚本编写,在本文的后面部分,我们将研究如何将它与sudo一起使用,以便为非特权用户提供对特定命令的访问权限。
[sealer@iZuf68xky083mr0yy6q37lZ ~]$ runuser
runuser: may not be used by non-root users
权限管理
将 runuser与 sudo结合可以提供对用户权限的更精细控制。
接下来,让baeldung以root身份运行脚本。我们将使用sudo,但我们也可以使用su。让我们通过使用visudo命令将此行添加到sudoers文件来添加权限:
baeldung ALL=(root) NOPASSWD: /home/baeldung/script.sh
关于 rootless 的配置问题
END 链接
✴️版权声明 © :本书所有内容遵循CC-BY-SA 3.0协议(署名-相同方式共享)©