This forum has been archived. All content is frozen. Please use KDE Discuss instead.

customizing kde screenlock with additional functionality

Tags: None
(comma "," separated)
kdelover
Registered Member
Posts
4
Karma
0
Hello Folks,

I have a requirement to customize the kde screenlock application with an additional button apart from 'switch users' and the 'unlock' button,
which i have been able to do albeit with a small problem.

I downloed kde-workspace source,modified lockdlg.cc and lockdlg.h to add the addtional button and rebuild it.Im running into a problem where i cannot unlock
my desktop after clicking the 'lock' in newly build kscreenlock.The error is see is 'Authentication failure'.I believe 'kscreenlock' calls 'kcheckpass' and for some reason its returns a failure.Do you guys have any pointers to where have i gone wrong?I can provide more info if needed.

Thanks.
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
In order to be able to interact with the system authentication framework (usually PAM) it is necessary for kcheckpass to have root privileges - which is accomplished through ensuring it is a setsuid binary. If you have compiled kde-workspace as a ordinary user, then it is not possible for the installation process to set the kcheckpass binary to be setsuid, so this step is silently skipped.

To do this manually, run the following:
Code: Select all
chown root:root kcheckpass
chmod +s kcheckpass


You should also ensure the privileges on the file are 755 - otherwise users will be able to alter the binary and may be able to exploit that to obtain root access.


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]
kdelover
Registered Member
Posts
4
Karma
0
Hi bcooksley,

I figured out that the problem was in my cmake_install.cmake file.It was looking for a file called 'mkpamserv' under the wrong directory.So,now i have a kde lock screen,with a custom button which only works on my machine when i unlock it or rather it works on hosts where the custom kscreenlocker has been built.

When i copy just the binary 'kscreenlocker' to another machine and lock and try to unlock it fails with an error ''Unlocking failed". Syslog has the following message
kcheckpass[30339]: Authentication failure for joe (invoked by uid 2031)



How do i build a kscreenlocker which can work on any machine,regardless of where it was built ?
User avatar
bcooksley
Administrator
Posts
19765
Karma
87
OS
Hmm - i'm not sure why that would be occurring. Are you modifying the same version of KDE as is shipped with your current distribution of choice?


KDE Sysadmin
[img]content/bcooksley_sig.png[/img]


Bookmarks



Who is online

Registered users: Bing [Bot], Google [Bot], kde-naveen, Sogou [Bot], Yahoo [Bot]