2014-09-06 86 views
0

我想在根目录下创建一个'test.txt'文件。目前我不是root用户。我的代码如下:打开()命令与拒绝权限

#include <stdio.h> 
#include <unistd.h> 
#include <sys/types.h> 
#include <sys/stat.h> 
#include <fcntl.h> 

int main(){ 
    int fd; 
    fd=open("/test.txt",O_CREAT|O_RDWR|O_TRUNC,0777); 
    perror("error: "); 
    close(fd); 

    return 0; 
} 

然而,当我编译并执行它,我得到的错误:

error: : Permission denied 

我怎样才能让我的代码必须创建在根文件的权限目录?

P.S.我正在努力完成这项工作,以便稍后可以将此方法应用于我的Linux守护进程程序。

+10

你的程序必须运行作为有权写入用户之前正确指定路径。(即)是当前工作目录手段,保持(点).在被询问的目录中。我建议您重新考虑放置守护进程文件的位置,并为您的守护进程创建一个单独的文件夹(例如'/ var/lib'或类似的文件夹)。这样你就不必像'root'那样运行守护进程,并且避开了一个很大的安全风险。 – 2014-09-06 14:01:09

+0

你应该运行你的程序作为管理员/根 – sas 2014-09-06 14:05:43

+1

@ user1234否,不是真的。 – 2014-09-06 15:08:50

回答

0
fd=open("/test.txt",O_CREAT|O_RDWR|O_TRUNC,0777); 

在这一行/./test.txt