程序删除其他用户的文件

时间:2014-12-01 21:27:28

标签: c++ linux file file-permissions

我有两个用户。 User1正在运行尝试从user2删除文件的程序。但我的计划总是让我“拒绝许可”。

当我尝试使用rm命令将我自己的文件删除为user1时,没有问题。文件的权限是775,我的user1在user2的组中。该组也是文件的所有者。文件所在目录的权限也是775。

为了删除文件,我编写的程序使用c / c ++中的“remove”函数。 有没有人有解决方案或想法?

之前我在unix.stackexchange.com上问了这个问题。他们把我送到了这里。

这是我的代码:

void deleteFile()     {

    if(0 != remove("File1.txt"))
        cout<<"Error deleting File: "<<strerror(errno)<<endl;
    if(0 != remove("File2.txt"))
        cout<<"Error deleting File: "<<strerror(errno)<<endl;
}

我已重命名文件,但我知道原始路径是正确的。我已经测试了这个

更多信息: 好吧,我已经将程序作为user2运行,文件已被删除,没有任何问题。

groups user1 users user2

groups user2 user2 adm www-data plugdev users ftp vsftpd

ls -lah drwxrwxr-x 7 user2 user2 4.0K Nov 27 14:13 . drwxrw-r-x 4 user2 user2 4.0K Nov 11 12:34 .. -rwxrwxr-x 1 user2 user2 50 Nov 12 15:12 File1.txt -rwxrwxr-x 1 user2 user2 826 Nov 27 14:13 File2.txt

1 个答案:

答案 0 :(得分:0)

尝试使用rm作为strace运行user1和您的命令:

strace your_program
strace rm File1.txt File2.txt

您应该看到,您的计划和rm做的不同。