[Kde-kiosk] Problem with Applying Group Profiles to new Users
Martijn Klingens
klingens at kde.org
Mon Jan 17 15:08:59 CET 2005
On Monday 17 January 2005 14:10, Murray Trainer wrote:
> mtrainer at ldap:~> groups mtrainer
> mtrainer : users Domain Users external
> mtrainer at ldap:~> kiosktool-kdedirs --check
> /home/mtrainer/.kde/:/var/lib/kde-profiles/default/:/etc/opt/kde3/:/opt/kde
>3/
>
> Obviously the problem is the /var/lib/kde-profiles/default value which
> should be /var/lib/kde-profiles/external/. My question is where and
> when is that value generated?
As far as I understand the Kiosk framework that should be automatically
determined. The relevant code in kiosktool-kdedirs is as follows:
---------
mapCfg.setGroup("Groups");
for( QStringList::ConstIterator it = groups.begin();
it != groups.end(); ++it )
{
QCString grp = (*it).utf8();
// Check if user is in this group
struct group *grp_ent = getgrnam(grp);
if (!grp_ent) continue;
char ** members = grp_ent->gr_mem;
for(char * member; (member = *members); ++members)
{
if (user == member)
{
// User is in this group --> add profiles
profiles += mapCfg.readListEntry(*it);
break;
}
}
}
---------
It would be interesting to see the result of this on your system using
hardcoded values.
In case you didn't compile KioskTool on your own you could try writing a small
C app that roughly does this (*WARNING* untested, might not even compile!):
-------
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#include <grp.h>
int main( void )
{
struct group *grp_ent = getgrnam( "external" );
if (!grp_ent)
{
printf( "Cannot read group external!\n" );
return -1;
}
char ** members = grp_ent->gr_mem;
for( char * member; (member = *members); ++members )
{
if (user == member)
printf( "User is in group 'external'\n" );
else
printf( "User is *NOT* in group 'external'!\n" );
}
return 0;
}
-------
I hope Waldo returns home soon BTW, since this is getting darn close to the
limits of my own abilities. :(
--
Martijn
More information about the kde-kiosk
mailing list