添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

最新在协助同事在docker中安装app时,提供的container使用了centos基础镜像(某些功能阉割版):

[root@server111-111 admin]# docker images
REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
docker.io/centos                  latest              75835a67d134        6 months ago        200 MB

经检查发现普通用户需要执行一些yum 安装命令,提示权限不足,如下:

[Errno 13] Permission denied: ‘/var/lib/rpm/__db.002’
You need to be root to perform this command.

解决方案步骤

1. 查看docker container os版本

给docker容器安装lsb_release后,检查centos版本如下:

yum -y install net-tools vim redhat-release

[root@container /]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.5.1804 (Core)
Release: 7.5.1804
Codename: Core

原生centos、ubuntu中提升普通用户为root权限,自然能想到是通过sudo方式,然而输入sudo却报命令不存在,看来docker中官方centos镜像已是精简到不能在精简的核心基础OS。

2. 安装sudo服务

安装sudo服务:

yum -y install sudo

3. sudoers list中添加普通用户

添加普通用户到sudoers列表中:

切换到root下:

Step ①、为/etc/sudoers文件增加写权限(原为440)

chmod 640 /etc/sudoers

Step ②、添加用户到sudoers list中(最后一行),同时修改属性:
vim /etc/sudoers 或使用 visudo命令修改:

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
## Allows members of the 'sys' group to run networking, software, 
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
%docker_backuper    ALL=(ALL)    NOPASSWD: ALL

Step ③、/etc/sudoers文件改回原权限(440)

chmod 440 /etc/sudoers

4. 校验

功能可行性检查:
在普通用户docker_backuper下,执行

sudo su

命令,看能否切换回root。

问题最新在协助同事在docker中安装app时,提供的container使用了centos基础镜像(某些功能阉割版):[root@server111-111 admin]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZ...
如何进入未启动的容器内部 在某些场景下,我们进入容器修改了配置信息或者系统配置之后重启容器,发现容器启动不了,通过日志发现原来是我们修改出错,此时我们想把配置改回来但发现因为容器启动不了,使用 docker exec 是无法进入容器内部了,这种情况下的解决办法是:先从容器内部把配置文件复制到宿主机内,在宿主机修改正确后再复制回容器内。 如: //从容器内把 Nginx.conf 复制到宿主机当前目录 docker cp 容器ID:/etc/Nginx/Nginx.conf . //修改 Ngin.
我有一个名为jenkins-app-2843651954-4zqdp的pod,我想在这个pod上安装几个软件,我怎样才能做到这一点?我尝试使用kubectl exec -it jenkins-app-2843651954-4zqdp /bin/bash,然后,运行apt install命令,但由于用户没有sudo权限,因此我无法运行命令。 查看pod使用什么shell # kubectl exec -it jenkins-app-2843651954-4zqdp (bash || ash ||
0. 什么是sudo sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。 1. 如何设置sudo权限 在Ubuntu,直接执行以下命令即可完成用户对sudo权限的获取: [da...
操作系统:Ubuntu 22.04 LTS 桌面版Docker:20.10.17当前账号是arlo,直接执行命令会报以下错误: 执行命令,会提示输入当前账号密码,然后可以成功: 每次执行docker命令都要输入密码不方便,并且在IDEA无法启动docker,也么有找到可以sudo的地方;1、创建名为docker的组,一般在安装docker的时候自动创建,此步骤可省略: 2、将当前用户加入组docker: 3、重启docker服务: 4、添加访问和执行权限: 5、操作完毕,验证一下,现在可以不用带sudo
启动虚拟机,系通过进度条的时候,点击鼠标右键+Esc键:出现如下界面,选择第三项: 然后依旧选择第三项故障排除,然后进入下一界面之后选择第二项,救援一个centos linux系统:然后回车进入下一个界面:然后等系统进一步提示,然后输入1,回车: 然后进入/mnt/sysimage,然后复制根目录下的libc.os.6倒挂在目录下的lib64下,然后退出: cd /mnt/sysimage cp ...
sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 3. 安装 Docker 引擎: sudo yum install -y docker-ce docker-ce-cli containerd.io 4. 启动 Docker 服务: sudo systemctl start docker 5. 验证 Docker 是否正确安装并运行: sudo docker run hello-world 如果一切顺利,你应该能够看到 "Hello from Docker!" 的输出,表示 Docker 安装成功。现在你可以开始使用 Docker 镜像了。