c++ - 程序删除其他用户的文件

标签 c++ linux file file-permissions

我有两个用户。用户 1 正在运行一个程序,该程序尝试从用户 2 中删除文件。但我的程序总是返回“权限被拒绝”。

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

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

我之前在 unix.stackexchange.com 上问过这个问题。他们派我来这里。

这是我的代码:

无效删除文件() {

    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 身份运行了该程序,并且文件已被删除,没有任何问题。

组 user1 用户user2

组 user2 user2 adm www-dataplugdev 用户 ftp vsftpd

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

最佳答案

尝试以 user1 身份运行 rm 和使用 strace 的命令:

strace your_program
strace rm File1.txt File2.txt

您应该看到,您的程序和 rm 的做法有何不同。

关于c++ - 程序删除其他用户的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27237639/

相关文章:

C#/C++ - 内存泄漏

c++ - 是否有围绕 Win32 的无锁 SList 的合适的 C++ 包装器?

python - 如何通过登录查找用户标识(*NIX 下的 Python)

linux - SQUASHFS 错误 : Unable to read page, ...,大小

c++ - 在字符串中查找所有需要的单词

linux - 丢弃数据包有效负载的工具?

mysql - 从文件或大数据库中读取

c - 在C中创建文件头(文件的元数据)

python - Python 会在完成写入之前打开文件吗?

c++ - 如何在 C++ 中将 double 值四舍五入到小数点后两位?