[
https://issues.apache.org/jira/browse/GUACAMOLE-890?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17025957#comment-17025957
]
Jotam edited comment on GUACAMOLE-890 at 1/29/20 3:27 PM:
----------------------------------------------------------
So, below you can see that I easily start a guacd container using the
65534:65534 user.
I then try to do the same with the guacamole container, but it fails.
I then start it without the docker _-u_ option, and it flawlessly starts, but
then the _java_ process runs as root user.
Feel free if you need more test / info to try to sort this out.
Thank you Nick for your support (y)
{{# docker run --name some-guacd -d {color:#00875a}-u 65534:65534{color}
guacamole/guacd:1.1.0-RC1}}
{{# docker ps -a}}
{{CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES}}
{{e145bb6006a2 guacamole/guacd:1.1.0-RC1 "/bin/sh -c '/usr/lo…" 10 seconds ago
{color:#00875a}Up 9 seconds{color} 4822/tcp some-guacd}}
{color:#4c9aff}{{# ps -ef | grep guacd}}{color}
{{{color:#00875a}nobody{color} 21286 21266 0 15:57 ? 00:00:00 /bin/sh -c
/usr/local/guacamole/sbin/guacd -b 0.0.0.0 -L $GUACD_LOG_LEVEL -f}}
{{{color:#00875a}nobody{color} 21344 21286 0 15:57 ? 00:00:00
/usr/local/guacamole/sbin/guacd -b 0.0.0.0 -L info -f}}
{{{color:#4c9aff}# docker run --name some-guacamole --link some-guacd:guacd -e
MYSQL_HOSTNAME=10.10.10.10 -e MYSQL_DATABASE=guacamole -e MYSQL_USER=guacamole
-e MYSQL_PASSWORD='guacamole' -d {color:#00875a}-u 65534:65534{color} -p
127.0.0.1:8080:8080 guacamole/guacamole:1.1.0-RC1{color}}}
{{# docker ps -a}}
{{CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES}}
{{b0826b7240c0 guacamole/guacamole:1.1.0-RC1 "/opt/guacamole/bin/…" 6 seconds
ago {color:#de350b}Exited (1) 4 seconds ago{color} some-guacamole}}
{{e145bb6006a2 guacamole/guacd:1.1.0-RC1 "/bin/sh -c '/usr/lo…" 2 minutes
ago Up 2 minutes 4822/tcp some-guacd}}
{{{color:#4c9aff}# docker rm b0826b7240c0{color}}}
{{{color:#4c9aff}# docker run --name some-guacamole --link some-guacd:guacd -e
MYSQL_HOSTNAME=10.10.10.10 -e MYSQL_DATABASE=guacamole -e MYSQL_USER=guacamole
-e MYSQL_PASSWORD='guacamole' -d -p 127.0.0.1:8080:8080
guacamole/guacamole:1.1.0-RC1{color}}}
{color:#4c9aff}{{# docker ps -a}}{color}
{{CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES}}
{{b7e4d16aa766 guacamole/guacamole:1.1.0-RC1 "/opt/guacamole/bin/…" 13 seconds
ago {color:#00875a}Up 13 seconds{color} 127.0.0.1:8080->8080/tcp
some-guacamole}}
{{e145bb6006a2 guacamole/guacd:1.1.0-RC1 "/bin/sh -c '/usr/lo…" 3 minutes
ago Up 3 minutes 4822/tcp some-guacd}}
{color:#4c9aff}{{# ps -ef | grep java}}{color}
{{{color:#de350b}root{color} 24724 24706 7 16:01 ? 00:00:14
/docker-java-home/jre/bin/java
-Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djdk.tls.ephemeralDHKeySize=2048
-Djava.protocol.handler.pkgs=org.apache.catalina.webresources
-Dorg.apache.catalina.security.SecurityListener.UMASK=0027
-Dignore.endorsed.dirs= -classpath
/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
-Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat
-Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap
start}}
was (Author: jotam):
So, below you can see that I easily start a guacd container using the
65534:65534 user.
I then try to do the same with the guacamole container, but it fails.
I then start it without the docker _-u_ option, and it flawlessly starts, but
then the _java_ process runs as root user.
Feel free if you need more test / info to try to sort this out.
Thank you Nick for your support (y)
{{# docker run --name some-guacd -d -u 65534:65534 guacamole/guacd:1.1.0-RC1}}
{{# docker ps -a}}
{{CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES}}
{{e145bb6006a2 guacamole/guacd:1.1.0-RC1 "/bin/sh -c '/usr/lo…" 10 seconds ago
{color:#00875a}Up 9 seconds{color} 4822/tcp some-guacd}}
{color:#4c9aff}{{# ps -ef | grep guacd}}{color}
{{{color:#00875a}nobody{color} 21286 21266 0 15:57 ? 00:00:00 /bin/sh -c
/usr/local/guacamole/sbin/guacd -b 0.0.0.0 -L $GUACD_LOG_LEVEL -f}}
{{{color:#00875a}nobody{color} 21344 21286 0 15:57 ? 00:00:00
/usr/local/guacamole/sbin/guacd -b 0.0.0.0 -L info -f}}
{{{color:#4c9aff}# docker run --name some-guacamole --link some-guacd:guacd -e
MYSQL_HOSTNAME=10.10.10.10 -e MYSQL_DATABASE=guacamole -e MYSQL_USER=guacamole
-e MYSQL_PASSWORD='guacamole' -d -u 65534:65534{color} -p 127.0.0.1:8080:8080
guacamole/guacamole:1.1.0-RC1{color}}}
{{# docker ps -a}}
{{CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES}}
{{b0826b7240c0 guacamole/guacamole:1.1.0-RC1 "/opt/guacamole/bin/…" 6 seconds
ago {color:#de350b}Exited (1) 4 seconds ago{color} some-guacamole}}
{{e145bb6006a2 guacamole/guacd:1.1.0-RC1 "/bin/sh -c '/usr/lo…" 2 minutes
ago Up 2 minutes 4822/tcp some-guacd}}
{{{color:#4c9aff}# docker rm b0826b7240c0{color}}}
{{{color:#4c9aff}# docker run --name some-guacamole --link some-guacd:guacd -e
MYSQL_HOSTNAME=10.10.10.10 -e MYSQL_DATABASE=guacamole -e MYSQL_USER=guacamole
-e MYSQL_PASSWORD='guacamole' -d -p 127.0.0.1:8080:8080
guacamole/guacamole:1.1.0-RC1{color}}}
{color:#4c9aff}{{# docker ps -a}}{color}
{{CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES}}
{{b7e4d16aa766 guacamole/guacamole:1.1.0-RC1 "/opt/guacamole/bin/…" 13 seconds
ago {color:#00875a}Up 13 seconds{color} 127.0.0.1:8080->8080/tcp
some-guacamole}}
{{e145bb6006a2 guacamole/guacd:1.1.0-RC1 "/bin/sh -c '/usr/lo…" 3 minutes
ago Up 3 minutes 4822/tcp some-guacd}}
{color:#4c9aff}{{# ps -ef | grep java}}{color}
{{{color:#de350b}root{color} 24724 24706 7 16:01 ? 00:00:14
/docker-java-home/jre/bin/java
-Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djdk.tls.ephemeralDHKeySize=2048
-Djava.protocol.handler.pkgs=org.apache.catalina.webresources
-Dorg.apache.catalina.security.SecurityListener.UMASK=0027
-Dignore.endorsed.dirs= -classpath
/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
-Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat
-Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap
start}}
> Guacamole/Guacd Docker Process Privilege Drop
> ---------------------------------------------
>
> Key: GUACAMOLE-890
> URL: https://issues.apache.org/jira/browse/GUACAMOLE-890
> Project: Guacamole
> Issue Type: Improvement
> Components: guacamole-docker
> Reporter: Anthony Boccia
> Priority: Minor
> Labels: docker, security
>
> Hello,
> I noticed after deploying Guacamole in docker that the processes all run as
> the root user. Are there any plans to add support for specifying a user for
> the processes to drop privs to and run as instead of root? I am currently
> doing this rebuilding the containers for guacamole and guacd adding in my own
> user and using docker compose to exec all processes triggered within the
> container as that user. I feel like the option to specify this should be done
> upstream.
> Thank You
--
This message was sent by Atlassian Jira
(v8.3.4#803005)