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