3,995 views
この記事は最終更新から 816日 が経過しています。
1. 問題発生
RHEL 8.5で久々に VNCサーバーを起動しようとしたら、以下の警告が発生して失敗した。
WARNING: vncserver has been replaced by a systemd unit and is about to be removed in future releases.
Please read /usr/share/doc/tigervnc/HOWTO.md for more information.
New 'localhost.localdomain:1 (hoge)' desktop is localhost.localdomain:1
Starting applications specified in /home/hoge/.vnc/xstartup
Log file is /home/hoge/.vnc/localhost.localdomain:1.log
どうやら vncserver コマンドは、管理者権限で実行されるべきものになるそうな。
2. 対処方法
警告文に
/usr/share/doc/tigervnc/HOWTO.md
を読めと書いてあるので、まずはこれを開いてみる。
less /usr/share/doc/tigervnc/HOWTO.md
色々と書かれているが、今すぐに vncserverを使いたいのであれば、以下の 2点にだけ対応すればよい。
1点目 : 設定ファイルにディスプレイ番号とユーザー名を書く。
以下のような説明が書かれている。
## 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 ```
つまり、以下のファイルを編集し…
vi /etc/tigervnc/vncserver.users
こんな感じに↓↓↓ {ディスプレイ番号}={ユーザー名} のようにユーザーマップを追記する。
# TigerVNC User assignment # # This file assigns users to specific VNC display numbers. # The syntax is= . E.g.: # # :2=andrew # :3=lisa :1=hoge
2点目 : systemctlコマンドで vncserverサービスを起動する。
各ユーザーが個々に vncserverを起動するのではなく、システム管理者がサービスとしてこれを起動する。
systemctl start vncserver@:1
※@の後はディスプレイ番号を入力する。
3点目 : もし新規作成したユーザーならば VNCパスワードを作成する。
VNCを使うユーザーのshellで以下を実行する。
vncpasswd
3. 所感
・root権限を持たない人は、管理者にお願いしなければならない。