YaST2 Control Center is not running as root
Today when I wanted to set up a terminal server that brings a VNC desktop into a browser using guacamole I got this error when calling yast:
YaST2 Control Center is not running as root. You can only see modules that do not require root privileges.
Ok, first thing I checked was that I am root indeed:
cloud-server-01:~ # who am i root pts/2 Jun 29 09:46 (krlh-4d034b34.pool.mediaways.net) cloud-server-01:~ # id uid=0(root) gid=0(root) groups=0(root)
Next thing was that I checked there is no mess around SUID bits or so. On my other computer where yast worked without problems I saw:
tweedleburg:~ # ll /sbin/yast lrwxrwxrwx 1 root root 5 May 29 06:33 /sbin/yast -> yast2 tweedleburg:~ # ll /sbin/yast2 -rwxr-xr-x 1 root root 10273 May 2 12:42 /sbin/yast2
So no SUID bits or so. Ok, next thing to do was an strace:
strace -ffs 100 yast 2>file
This will execute yast, write a trace (strace), follow calls to sub-processes (ff), print a size of 100 characters per string (s 100) and redirect this to file. When looking at the file, funny enough, I remember the error message wrong, and I searched for "cannot". And there it was, the root-cause:
[pid 26593] clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f1f54664a10) = -1 ENOMEM (Cannot allocate memory)
After resizing my server from 512 MB to 1024 MB it worked. Maybe I had too many processes running around. Because it once worked with 512 MB.