Mit*_*ril 2 permissions bash root sudo scripts
此问题与 bash 脚本中的Ignore sudo不重复
我正在制作一个基于 Ubuntu 14.04 docker 镜像的 docker 镜像。如您所知,root 是 docker 中的默认用户。当我运行 bash 脚本来安装软件时,得到
sudo: error in /etc/sudo.conf, line 0 while loading plugin `sudoers_policy'
sudo: /usr/lib/sudo/sudoers.so must be owned by uid 0
sudo: fatal error, unable to load plugins
Run Code Online (Sandbox Code Playgroud)
我试过了chown root /usr/lib/sudo/sudoers.so
,但它不起作用。
这种行为很奇怪:
ls (everyone can do this)
sudo ls (you can't do this even if you are root)
Run Code Online (Sandbox Code Playgroud)
因为我正在构建一个docker镜像,所以我不想安装不相关的包来让sudo支持root。但是sudo
在一些 bash 脚本中有一堆,所以简单地替换sudo
为空可能不是一个好的选择。
所以我想知道是否有什么方法可以只sudo
在你是 root 时忽略
在你的脚本中,一开始,定义sudo
为一个函数,sudo
如果需要,它会调用实际:
sudo ()
{
[[ $EUID = 0 ]] || set -- command sudo "$@"
"$@"
}
Run Code Online (Sandbox Code Playgroud)
command sudo foo bar
告诉 bash 使用实际sudo
命令而不是函数或别名。$EUID
是有效的用户 ID,可能与 不同$UID
。
归档时间: |
|
查看次数: |
1299 次 |
最近记录: |