Description of problem: gdmsetup does not use consolehelper for root authentication when run by a non-root user Version-Release number of selected component (if applicable): 2.18.4-2.fc7 How reproducible: Always Steps to Reproduce: Choose system->admin->login window in Gnome. Actual results: Error message states that you must be root to configure GDM Expected results: Prompt for root password, and then run gdmsetup as root. Additional info:
Some additional info: rpm -qV gdm checks out fine. There is a symlink from /usr/bin/gdmsetup to consolehelper, and running /usr/bin/gdmsetup from the command line produces the expected results. Selecting it from the menu, however, does not. Attaching a strace -o gdm.strace -ff -p <pid of gnome-panel> produces the following interesting tidbit: gdm.strace.17418:execve("/usr/kerberos/bin/gdmsetup", ["gdmsetup"...], [/* 34 vars */]) = -1 ENOENT (No such file or directory) gdm.strace.17418:execve("/usr/lib64/ccache/gdmsetup", ["gdmsetup"...], [/* 34 vars */]) = -1 ENOENT (No such file or directory) gdm.strace.17418:execve("/usr/local/sbin/gdmsetup", ["gdmsetup"...], [/* 34 vars */]) = -1 ENOENT (No such file or directory) gdm.strace.17418:execve("/usr/sbin/gdmsetup", ["gdmsetup"...], [/* 34 vars */]) = 0 Why is gnome-panel attempting to execute the real gdmsetup is the real question...
OK, that last tidbit led me to the answer. /usr/sbin was in my path prior to /usr/bin. Should have been obvious all along. I'm leaving this one open though, because I don't think that the real gdmsetup should be in /usr/sbin. Rather, it should be in /usr/share/gdm so that this exact thing doesn't happen - take system-config-* for example.
gdmsetup is compiled code, so can't go to /usr/share/gdm. We could potentially put it in libexec, but then consolehelper wouldn't know where to find it. Basically consolehelper is a bad idea, and we should port gdmsetup over to use policykit instead.