November 22, 2024, 06:51:05 AM

News : LinuxSolved.com Linux Help Community Forum..


Author Topic: Changing the time as a non-root user in Linux  (Read 7272 times)

Offline cruiser

  • New Member
  • Posts: 1
Changing the time as a non-root user in Linux
« on: May 09, 2011, 10:48:44 AM »
Hi,

I need to edit the system time as a not-root user. I am carrying out the following actions in my program.

1. Read the User Id of the process. User_ID= getuid()
2. Printing Capabilities(Permitted, Efffective, Inheritable)of the process
3. Setting UID = 0, using setuid(0)
4. Calling the prctl(), function to keep capabilities
5.Switching the UID from root to User_ID of the process
6. What we have now is a process with root capabilities as a non root user
7. On printing Permitted, Effective, Inheritable capabilities, I get the following
--> Permitted = 0xfffffeff = Effective
Inheritable = 0x0; with UID = 1001;
8. I then try and set the system time with --> system("date -s 10:00");
9. I get an error: date: cannot set date: Operation not permitted

10. I am unable to understand as to why I cannot set the time even thought the capability bit CAP_SYS_TIME in the Permitted and Effective sets are SET.

Regards