Проблема заключается в том, что пользователю необходимы разрешения на запись в каталог, чтобы удалить файл.Права на запись самого файла не позволяют им удалить файл.Вот почему это работает, когда вы перемещаете файл в их домашнюю директорию, для которой у них есть права на запись :).Может быть, возможно переместить файл к себе домой, прежде чем сменить пользователя с помощью posix_setuid (), -
См. эту статью для получения дополнительной информации о разрешениях Linux.* Редактировать: Я просто перечитал ваш пост и понял, что вы заявили, что не перемещаете файл в реальный дом пользователя.Тем не менее, каталог / home / dir, в который вы перемещаете файл, должен предоставить пользователю право на запись для удаления файла.Я догадываюсь, что каталог, в который вы перемещаете файл, либо имеет права на запись, предоставленные владельцу группы, членом которого является пользователь, либо имеет права на запись для всех."ls -l" должен показать вам эту информацию.