Recently, I was following installation instructions for Guacamole in the manual on http://guac-dev.org/. My system is Ubuntu 14.04.
First, I installed the basic required dependencies:
$ apt-get install -y apache2 libcairo2-dev libjpeg62-dev libpng12-dev libossp-uuid-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libpulse-dev libssl-dev libvorbis-dev maven tomcat7
$ apt-get install -y libvncserver-dev
Then, I downloaded guacamole-server-0.9.8.tar.gz
and guacamole-0.9.8.war
and installed them according to the instructions in the manual:
$ tar xf guacamole-server-0.9.8.tar.gz
$ cd guacamole-server-0.9.8
$ ./configure
$ make
$ make install
$ cp guacamole-0.9.8.war /var/lib/tomcat7/webapps/guacamole.war
$ mkdir /etc/guacamole
I created the /etc/guacamole/guacamole.properties
, containing the following:
guacd-hostname: localhost # although the guide says it should be guacd-host, but the example shown in http://guac-dev.org/doc/gug/configuring-guacamole.html is guacd-hostname
guacd-port: 4822
user-mapping: /etc/guacamole/user-mapping.xml
/etc/guacamole/user-mapping.xml
contains the following:
<user-mapping>
<authorize username="USERNAME" password="PASSWORD">
<protocol>vnc</protocol>
<param name="hostname">localhost</param>
<param name="port">5901</param>
<param name="password">123456</param>
</authorize>
<authorize username="wangx" password="wangxiang">
<protocol>vnc</protocol>
<param name="hostname">192.168.1.111</param>
<param name="port">5901</param>
<param name="password">123456</param>
</authorize>
</user-mapping>
I then restarted tomcat7 and guacd:
$ /etc/init.d/tomcat7 restart
$ /etc/init.d/guacd restart
The GUACAMOLE_HOME
environment variable is empty:
$ echo $GUACAMOLE_HOME
There is no .guacamole
directory in /home/<user>
nor in /var/lib/tomcat7/webapps/guacamole
. When I visit the http://localhost:8080/guacamole
, I entered username "wangx" and password "wangxiang", it shows invalid login.
How can I solve this? Where should I locate the guacamole.properties
and user-mapping.xml
file? Did I do something wrong?
Thank you for your attention.
Logging inEnter your username and password and click "login". You will then be given a list of available remote desktop connections to choose from. If you have used Guacamole in that specific web browser before, you will also see thumbnails of the screens of recently used connections.
To add a new user, click the “New User” button. This will take you to a screen where you will be allowed to enter the details of the new user, such as the password and username.
Navigate to the Connections tab and click New Connection. Under Edit Connection, enter a name for your new connection (such as “Guacamole SSH”) and select SSH as the Protocol. Under Parameters, enter your IP address as the Hostname, 22 as the Port, your username as the Username and your user's password as the Password.
Check Guacamole's logs for errors or warnings related to your configuration. These logs are within the logs of your servlet container, such as Apache Tomcat. Common locations are /var/log/tomcat/catalina. out or within the systemd journal (accessed via journalctl ).
according to the instructions in the manual:
... $ mkdir /etc/guacamole
Guacamole will not automatically read from /etc/guacamole
. It will read from GUACAMOLE_HOME
, but this is not an environment variable - it is a placeholder for the Guacamole configuration directory which can be determined through an environment variable of the same name, but there are other possible locations. From the GUACAMOLE_HOME
description in the Guacamole manual:
GUACAMOLE_HOME
Guacamole reads files from its own configuration directory by default, resorting to the classpath only when this directory cannot be found. When locating this directory, Guacamole will try, in order:
- The directory specified within the system property
guacamole.home
.- The directory specified within the environment variable
GUACAMOLE_HOME
.- The directory
.guacamole
, located within the home directory of the user running the servlet container.This directory will be referred to as
GUACAMOLE_HOME
elsewhere in the documentation.Guacamole uses
GUACAMOLE_HOME
as the primary search location for configuration file likeguacamole.properties
. ...
Your guacamole.properties
and user-mapping.xml
look fine, but Guacamole will not be able to find those files unless they are within GUACAMOLE_HOME
. An extremely simple way to solve this would be to symbolically link .guacamole
within the Tomcat user's home directory to /etc/guacamole
. In the case of the "tomcat7" package on Ubuntu, the Tomcat user's home directory is /usr/share/tomcat7
:
$ ln -s /etc/guacamole/ /usr/share/tomcat7/.guacamole
Alternatively, you could create the .guacamole
directory, and make a symbolic link to guacamole.properties
instead. Since the location of your user-mapping.xml
is explicitly specified within your guacamole.properties
, you do not need to place it within GUACAMOLE_HOME
:
$ mkdir /usr/share/tomcat7/.guacamole
$ ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat7/.guacamole/
Be sure to restart Tomcat after you make these changes, and things should start working.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With