У меня есть два пользователя. Пользователь 1 запускает программу, которая пытается удалить файл пользователя 2. Но моя программа всегда возвращает мне «отказано в доступе».
Когда я пытаюсь удалить файл сам как user1 с помощью команды rm, проблем нет. Разрешение файлов 775, и мой пользователь1 находится в группе пользователя2. Эта группа также является владельцем файлов. Разрешение каталога, в котором находятся файлы, тоже 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, и файлы были удалены без каких-либо проблем.
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