2016-12-04 1 views
2

Hier hat das, was ich tun:Erlaubnis in einem selbst Docker verweigert Behälter, wenn der Benutzer die Rechte

$ 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 

Ich verstehe nicht, warum meine neu erstellte Benutzer user nicht /usr/local/tomcat/bin zugreifen kann, während er zugreifen kann /usr/local/tomcat/include: user hat alle & Gruppe die Rechte des Benutzers über diese bin Ordner ...

ich die gleichen Ergebnisse haben, wenn ich Docker lauch mit --privileged=true (docker run --privileged=true -it --rm tomcat:8.5-alpine sh), und dieses Docker Bild scheint nicht SELinux alszu verwendengibt den Fehler ash: setenforce: not found.

Ich benutze Docker Version 1.12.3, build 6b644ec auf Ubuntu 14.04.5 LTS.

Entspricht dies einer bug in Docker with AUFS driver?

+0

Haben nicht Sie noch keine Lösung gefunden? – rideronthestorm

+0

@rideronthestorm leider nein, ich lief schließlich Tomcat als root: https://github.com/anthony-o/SwinGifts/blob/master/run_with_docker.sh#L89. Ich denke, es liegt an einem Fehler in Docker mit AUFS-Treiber: https://github.com/moby/moby/issues/24660 –

+0

@ rideronthestorm oder vielleicht in Ihrem Fall ist es ein "chmod THEN Chown" Problem? siehe https://github.com/moby/moby/issues/6047#issuecomment-270156862 –

Antwort

0

Das sieht wie ein Security-Enhance Linux Problem aus. erste

Versuchen:

su -c "setenforce 0" 

Oder verwenden --privileged when using docker run

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

Vielen Dank für die Antwort, aber es hat den Job nicht gemacht, wie ich es in meiner Frage präzisiere ... –