111 lines
3.8 KiB
Markdown
111 lines
3.8 KiB
Markdown
|
# What has changed
|
|||
|
The previous Tigervnc versions had a wrapper script called `vncserver` which
|
|||
|
could be run as a user manually to start *Xvnc* process. The usage was quite
|
|||
|
simple as you just run
|
|||
|
```
|
|||
|
$ vncserver :x [vncserver options] [Xvnc options]
|
|||
|
```
|
|||
|
and that was it. While this was working just fine, there were issues when users
|
|||
|
wanted to start a Tigervnc server using *systemd*. For these reasons things were
|
|||
|
completely changed and there is now a new way how this all is supposed to work.
|
|||
|
|
|||
|
# How to start Tigervnc server
|
|||
|
|
|||
|
## Add a user mapping
|
|||
|
With this you can map a user to a particular port. The mapping should be done in
|
|||
|
`/etc/tigervnc/vncserver.users` configuration file. It should be pretty
|
|||
|
straightforward once you open the file as there are some examples, but basically
|
|||
|
the mapping is in form
|
|||
|
```
|
|||
|
:x=user
|
|||
|
```
|
|||
|
For example you can have
|
|||
|
```
|
|||
|
:1=test
|
|||
|
:2=vncuser
|
|||
|
```
|
|||
|
|
|||
|
## Configure Xvnc options
|
|||
|
To configure Xvnc parameters, you need to go to the same directory where you did
|
|||
|
the user mapping and open `vncserver-config-defaults` configuration file. This
|
|||
|
file is for the default Xvnc configuration and will be applied to every user
|
|||
|
unless any of the following applies:
|
|||
|
* The user has its own configuration in `$HOME/.vnc/config`
|
|||
|
* The same option with different value is configured in
|
|||
|
`vncserver-config-mandatory` configuration file, which replaces the default
|
|||
|
configuration and has even a higher priority than the per-user configuration.
|
|||
|
This option is for system administrators when they want to force particular
|
|||
|
*Xvnc* options.
|
|||
|
|
|||
|
Format of the configuration file is also quite simple as the configuration is
|
|||
|
in form of
|
|||
|
```
|
|||
|
option=value
|
|||
|
option
|
|||
|
```
|
|||
|
for example
|
|||
|
```
|
|||
|
session=gnome
|
|||
|
securitytypes=vncauth,tlsvnc
|
|||
|
desktop=sandbox
|
|||
|
geometry=2000x1200
|
|||
|
localhost
|
|||
|
alwaysshared
|
|||
|
```
|
|||
|
### Note:
|
|||
|
There is one important option you need to set and that option is the session you
|
|||
|
want to start. E.g when you want to start GNOME desktop, then you have to use
|
|||
|
```
|
|||
|
session=gnome
|
|||
|
```
|
|||
|
which should match the name of a session desktop file from `/usr/share/xsessions`
|
|||
|
directory.
|
|||
|
|
|||
|
## Set VNC password
|
|||
|
You need to set a password for each user in order to be able to start the
|
|||
|
Tigervnc server. In order to create a password, you just run
|
|||
|
```
|
|||
|
$ vncpasswd
|
|||
|
```
|
|||
|
as the user you will be starting the server for.
|
|||
|
### Note:
|
|||
|
If you were using Tigervnc before for your user and you already created a
|
|||
|
password, then you will have to make sure the `$HOME/.vnc` folder created by
|
|||
|
`vncpasswd` will have the correct *SELinux* context. You either can delete this
|
|||
|
folder and recreate it again by creating the password one more time, or
|
|||
|
alternatively you can run
|
|||
|
```
|
|||
|
$ restorecon -RFv /home/<USER>/.vnc
|
|||
|
```
|
|||
|
|
|||
|
## Start the Tigervnc server
|
|||
|
Finally you can start the server using systemd service. To do so just run
|
|||
|
```
|
|||
|
$ systemctl start vncserver@:x
|
|||
|
```
|
|||
|
as root or
|
|||
|
```
|
|||
|
$ sudo systemctl start vncserver@:x
|
|||
|
```
|
|||
|
as a regular user in case it has permissions to run `sudo`. Don't forget to
|
|||
|
replace the `:x` by the actual number you configured in the user mapping file.
|
|||
|
Following our example by running
|
|||
|
```
|
|||
|
$ systemctl start vncserver@:1
|
|||
|
```
|
|||
|
you will start a Tigervnc server for user `test` with a GNOME session.
|
|||
|
|
|||
|
### Note:
|
|||
|
If you were previously using Tigervnc and you were used to start it using
|
|||
|
*systemd* then you will need to remove previous *systemd* configuration files,
|
|||
|
those you most likely copied to `/etc/systemd/system/vncserver@.service`,
|
|||
|
otherwise this service file will be preferred over the new one installed with
|
|||
|
latest Tigervnc.
|
|||
|
|
|||
|
# Limitations
|
|||
|
You will not be able to start a Tigervnc server for a user who is already
|
|||
|
logged into a graphical session. Avoid running the server as the `root` user as
|
|||
|
it's not a safe thing to do. While running the server as the `root` should work
|
|||
|
in general, it's not recommended to do so and there might be some things which
|
|||
|
are not working properly.
|