前言
在VMware上刚安装完的centos7系统,想安装docker,进行部署项目的,突然发现给我报错了,查了一下资料,是权限的问题,以前没有遇到过,现在来记录下。
连着报了两个错误,在这儿总结下:
- bug1:
feng 不在 sudoers 文件中,此事将被报告。
- bug2:
/var/run/yum.pid 已被锁定,PID 为 14364 的另一个程序正在运行。 Another app is currently holding the yum lock; waiting for it to exit...
一、问题一
1. 问题叙述
使用命令 yum install -y docker
安装docker时报错,如下。feng
为我的本地用户。
报错信息:feng 不在 sudoers 文件中,此事将被报告。
2. 问题原因
因为当前操作用户的权限不足,而root用户只有在权限分配及系统设置时才会使用,而root用户的密码也不可能公开。
普通用户执行到系统程序时,需要临时提升权限
,sudo就是我们常用的命令,仅需要输入当前用户密码,便可以完成权限的临时提升。
3. 问题解决
- 切换到root用户权限,输入如下命令,回车后输入密码再回车
su root
- 查看/etc/sudoers文件权限,如果只读权限,修改为可写权限
ls -l /etc/sudoers
- 输入修改权限命令:
chmod 777 /etc/sudoers
or
chmod u+w /etc/sudoers
可以再次查看文件权限:“ll /etc/sudoers”
ll /etc/sudoers
4. 执行vim命令,编辑/etc/sudoers文件,添加要提升权限的用户;在文件中找到root ALL=(ALL) ALL,在该行下添加提升权限的用户信息,如:
5. 保存退出,并恢复/etc/sudoers的访问权限为440,执行如下恢复命令:
chmod 440 /etc/sudoers
并查看该文件权限如下
6. 切换到普通用户feng。并继续下载即可。
二、问题二
1. 问题叙述
上面第一个问题解决后,再次使用yum 命令去安装docker时,又报错了,报错内容和截图如下:
/var/run/yum.pid 已被锁定,PID 为 14364 的另一个程序正在运行。 Another app is currently holding the yum lock; waiting for it to exit...
2. 问题原因
可能是系统自动升级正在运行,yum在锁定状态中。
已经有一个yum进程在运行了,使用kill干掉它:
3. 问题解决
# kill -s 9 14364
# ps aux|grep yum
root 6744 0.0 0.0 103260 900 pts/1 S+ 14:59 0:00 grep yum
root 14364 0.0 0.0 0 0 ? Z Sep19 0:01 [yumBackend.py] <defunct>
如果 kill 命令 对付不了它,那怎么办呢?
可以通过强制关掉yum进程:
rm -f /var/run/yum.pid
然后就可以使用yum了。
然后就正常使用安装啦。