【问题标题】:Permission denied in a Docker container even if user has the rights即使用户拥有权限,Docker 容器中的权限也被拒绝
【发布时间】:2017-04-18 15:57:37
【问题描述】:

这是我的工作:

$ docker run -it --rm tomcat:8.5-alpine sh
/usr/local/tomcat # adduser -D -g '' -u 1000 user
/usr/local/tomcat # chown -R user:user $CATALINA_HOME
/usr/local/tomcat # su user -c 'catalina.sh run'
sh: catalina.sh: Permission denied

/usr/local/tomcat # echo $CATALINA_HOME
/usr/local/tomcat
/usr/local/tomcat # ls -la $CATALINA_HOME
total 128
drwxr-xr-x   20 user     user          4096 Dec  4 00:47 .
drwxr-xr-x   10 root     root          4096 Dec  4 00:47 ..
-rw-r-----    1 user     user         57092 Nov  3 21:16 LICENSE
-rw-r-----    1 user     user          1723 Nov  3 21:16 NOTICE
-rw-r-----    1 user     user          7063 Nov  3 21:16 RELEASE-NOTES
-rw-r-----    1 user     user         15946 Nov  3 21:16 RUNNING.txt
drwxr-x---    2 user     user          4096 Dec  4 00:47 bin
drwx------    2 user     user          4096 Dec  4 00:47 conf
drwxr-xr-x    4 user     user          4096 Dec  4 00:47 include
drwxr-x---    2 user     user          4096 Dec  4 00:47 lib
drwxr-x---    2 user     user          4096 Nov  3 21:14 logs
drwxr-xr-x    4 user     user          4096 Dec  4 00:47 native-jni-lib
drwxr-x---    2 user     user          4096 Dec  4 00:47 temp
drwxr-x---   12 user     user          4096 Dec  4 00:47 webapps
drwxr-x---    2 user     user          4096 Nov  3 21:14 work

/usr/local/tomcat # su user -c 'ls -la /usr/local/tomcat/bin'
ls: can't open '/usr/local/tomcat/bin': Permission denied
total 0

/usr/local/tomcat # su user -c 'ls -la /usr/local/tomcat/include'
total 12
drwxr-xr-x    4 user     user          4096 Dec  4 00:47 .
drwxr-xr-x   20 user     user          4096 Dec  4 00:47 ..
drwxr-xr-x    2 user     user          4096 Nov 17 23:45 apr-1

我不明白为什么我新创建的用户user 无法访问/usr/local/tomcat/bin 而他可以访问/usr/local/tomcat/includeuser 拥有此bin 文件夹的所有用户和组的权限.. .

如果我使用--privileged=true (docker run --privileged=true -it --rm tomcat:8.5-alpine sh) 启动 docker,我会得到相同的结果,并且这个 Docker 映像似乎没有使用 SELinux,因为su -c "setenforce 0" 给出了错误ash: setenforce: not found

我在 Ubuntu 14.04.5 LTS 上使用 Docker 版本 1.12.3, build 6b644ec

这是否对应于bug in Docker with AUFS driver

【问题讨论】:

标签: tomcat docker rights


【解决方案1】:

这看起来像是 Security-Enhance Linux 问题。

先试试吧:

su -c "setenforce 0"

或使用--privileged when using docker run

docker run --privileged=true -it --rm tomcat:8.5-alpine sh

【讨论】:

  • 感谢您的回答,但它并没有完成这项工作,因为我在我的问题中明确了它......
猜你喜欢
  • 2019-01-06
  • 2020-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 2022-01-12
  • 2018-10-31
  • 2021-10-31
相关资源
最近更新 更多