[ 
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:18 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)

{color:#4c9aff}{{# docker run --name some-guacd -d {color:#00875a}-u 
65534:65534{color} guacamole/guacd:1.1.0-RC1}}{color}

{color:#4c9aff}{{# docker ps -a}}{color}
 {{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}

{color:#4c9aff}{{# docker ps -a}}{color}
{{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 
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)

{color:#4c9aff}{{# docker run --name some-guacd -d {color:#00875a}-u 
65534:65534{color} guacamole/guacd:1.1.0-RC1}}{color}

{color:#4c9aff}{{# docker ps -a}}{color}
 {{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}

{color:#4c9aff}{{# docker ps -a}}{color}
{{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)

Reply via email to