chmod在使用sudo时失败了

时间:2013-05-11 16:43:20

标签: sudo chmod

我的程序需要使用settimeofday更改系统时间,然后使用chmod更改文件的权限。必须使用sudo运行此程序才能成功更改日期。

然而,当我使用“不允许操作”的sudo运行程序时, chmod失败。如果我在没有 sudo的情况下运行chmod ,它可以正常工作。

为什么sudo可以用来改变一天中的时间,但不是chmod?我是该文件的所有者。 如何让chmod在我的程序中工作?

char* file;
struct timeval now;

//.....

now.tv_sec=866208142;
now.tv_usec=290944;

if(settimeofday(&now, NULL) < 0) 
{
   printf("settimeofday() failed, ""errno = %d\n",errno);
   return -1;
}

if (chmod(file, S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH) < 0)
{
  printf(error in chmod(%s, %d) - %d (%s)\n", file, 
     S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH, errno, strerror(errno));
}

0 个答案:

没有答案