How to make certain nodes available to anonymous users? I am having a site that hosts a number of content items (nodes) that are available to registered users. We would like to make some of those data available to anonymous users, too, via a view. I have encountered so far two issues:


The nodes have attachments and currently the attachments are saved
in Drupal's private storage. When an anonymous user will try to
access the attachment directly, they will see an error.
Currently, I deny to anonymous users the permission to View published content. Thus, when a user clicks a link to a node, he will see an Access Denied error. This can be perhaps solved by using Content Access.


The solution I can think of is to clone the nodes I want to make public and make public their cloned counterparts but I dislike data copying as a practise. Any other ideas?
Just add a field to your nodes, similar to the "checkbox" as described in the question "How to allow users to post content and easily overrule its default access settings?". That field is used when creating a node, to indicate if the node should be viewable by anonymous users also (the default probably being "no").

With that, you could use the Rules module and the Content Access module to implement what you're looking for, similar to what I described in my answer to that same question mentioned above.

This approach should work for brand new nodes being created, while it should also work if you add such field to existing nodes. Though you'd have to experiment a bit to see which Rules "Event" is the bet fit in your case (I'd assume that node create and/or node update is what you'd need).

If you only want "some of those data" to be available to anonymous users, then you may want to add the Field Permissions module also (so that only the relevant fields can be viewed by anonymous users.

Video tutorials

If you're not familiar (enough/yet) with Rules, checkout the 32 (!!!) great, and free, video tutorials Learn the Rules framework, organized in 7 chapters.