The background for this question is here: Delete nodes using Rules and VBO
Summary: a VBO View selects various nodes of a particular content type. A Rules Action Set is instructed to load this VBO View, loop through the entity objects, and delete them. A Rule runs/is triggered on cron and has this Action Set for its action. So, when cron runs the selected nodes should be deleted.
However, the nodes are not deleted, because cron runs as the Anonymous User (0), and the content type is configured such that anonymous users are not allowed to delete nodes of this content type.
How can this be solved so that the nodes are deleted on cron?
Giving anonymous users permission to delete nodes of this content type is not a good solution on this site.
Presumably, cron runs as Anonymous User (0) for security reasons. Any acceptable solution should not undermine the site's security.
A programmatic solution (e.g. code in a custom module) is certainly acceptable if a "code-less" solution in Rules is not possible.
My memory is a little hazy, but I'm pretty sure I did something similar a few years ago.
hook_form_alter()to remove the "delete" button from the node form.
This approach is slightly dangerous in that the user can modify the URL to delete the node by adding
/delete on the end, but if your users aren't particularly sophisticated hiding the delete button may be enough.