Opened 18 years ago

Closed 18 years ago

#1941 closed task (fixed)

kdebase instructions install binary with nonexistent group

Reported by: Chris Staub Owned by: blfs-book@…
Priority: normal Milestone: 6.2.0
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

The instructions for kdebase say to make sure "nogroup" group exists before running make install, since ${KDE_PREFIX}/bin/kdesud is installed setgid nogroup. BLFS suggests in the "Users and Groups" section to have a "nogroup" group with gid 99, but kdebase actually installs kdesud with gid 65534 (simply assuming that number to be for nogroup), so if BLFS instructions for users/groups are followed, that program is owned by a non-existent group. In the kdebase instructions, right after "make install" should be "chgrp nogroup /usr/bin/kdesud && chmod g+s /usr/bin/kdesud" to correct the group ownership and set it back to setgid.

Change History (4)

comment:1 by bdubbs@…, 18 years ago

Resolution: worksforme
Status: newclosed

If you have the group created before installing kdebase, it uses the system value. At least is does for me:

$ ll /opt/kde-3.5.2/bin/kdesud -rwxr-sr-x 1 root nogroup 59598 Apr 15 14:32 /opt/kde-3.5.2/bin/kdesud

I have never had to chgrp or chmod.

If you can pinpoint the problem in the Makefile, reopen the ticket.

comment:2 by Chris Staub, 18 years ago

Resolution: worksforme
Status: closedreopened

OK, it does work. The issue isn't the kdebase Makefile, it's the BLFS instructions. BLFS kdebase instructions say only that nogroup must exist before running "make install". However, kdebase configure checks for it and assigns ownership of kdesud to "65534" if it doesn't find a nogroup group during the configure. The kdebase instructions need to be changed to clarify that you need a nogroup before running configure, not just before "make install".

comment:3 by Randy McMurchy, 18 years ago

Priority: lownormal

I concur with Chris. This is from configure.in:

============================================================== dnl Check for the group "nogroup" or "nobody" Use -2 otherwise. AC_MSG_CHECKING(nogroup) AC_TRY_RUN([

#include <grp.h> #include <sys/types.h>

int main() {

struct group *grp = getgrnam("nogroup"); if (grp) return 0; return 1;

}

], nogroup=nogroup, AC_TRY_RUN([

#include <grp.h> #include <sys/types.h>

int main() {

struct group *grp = getgrnam("nobody"); if (grp) return 0; return 1;

}

], nogroup=nobody, nogroup=65534, nogroup=65534), nogroup=65534) ===============================================================

To me, the above is conclusive.

comment:4 by bdubbs@…, 18 years ago

Resolution: fixed
Status: reopenedclosed

OK. Fixed at revision 5966.

Note: See TracTickets for help on using tickets.