[Short Tip] Workaround MIT-SHM error when starting QT/KDE apps with SUDO

Gnomelogo.svg

Starting GUI programs as root usually is not a problem. In worst case, sudo inside a terminal should do the trick.

However, recently I had to start a QT application as sudo from within GNOME. It was the yubikey configuration GUI, a third party tool thus not part of any desktop environment. Executing the app failed, it only showed a gray window and multiple errors in the command line:

$ sudo /usr/bin/yubikey-personalization-gui 
X Error: BadAccess (attempt to access private resource denied) 10
  Extension:    130 (MIT-SHM)
  Minor opcode: 1 (X_ShmAttach)
  Resource id:  0x142
X Error: BadShmSeg (invalid shared segment parameter) 128
  Extension:    130 (MIT-SHM)
  Minor opcode: 5 (X_ShmCreatePixmap)
  Resource id:  0xfa
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
  Major opcode: 62 (X_CopyArea)
  Resource id:  0x2800015

Workarounds like pkexec and adding a policykit rule didn’t help, either. The error indicates that there is a problem with the MIT Shared Memory Extension of X.

A good workaround is to deactivate the usage of the extension on command line:

$ sudo QT_X11_NO_MITSHM=1 /usr/bin/yubikey-personalization-gui

It works like a charm.

6 thoughts on “[Short Tip] Workaround MIT-SHM error when starting QT/KDE apps with SUDO”

    1. Why not? gui kdesudo is no more harmful than cli sudo. And:

      mati@scout:~$ ps uax | grep X
      root 1298 1.4 0.4 271060 65432 tty7 Ss+ 18:00 3:41 /usr/bin/X :0 vt7 -br -nolisten tcp -auth /var/run/xauth/A:0-NWy0Mb

      At the en X runs as root.

    2. You are of course right! =)
      Having said that, I would love to see an improved version of the yubikey GUI which actually takes that into account. But up until then, it seems to need the root rights.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.