I received a client request where they want me to modify the Author role; so that any user with this role can view and modify a subset of items, and can publish only a single item at a time and not the entire site, is there a role or group that would provide such access?
Try to make your "Author" role a member of "Sitecore Client Publishing" role to view and modify a subset of items, and can publish only a single item.
Thanks Marek for leading me in the right way, there is a great blog post about hiding the Publish Site buttons written by Marek himself, basically what needs to be done is the following
In order to hide them, you need to switch the database to Core, run the Security Editor application, select the role and: remove the Read permission from the sitecore > content > document and settings > all users > start menu > left > publish site item, deny the Read permission from the sitecore > content > applications > content editor > menues > publish site item.
Sitecore PowerShell Extensions
You could consider using something like the Multi-Item Publish with SPE. Richard Seal did a nice job building a module as an addon to Sitecore PowerShell Extensions.
The script and script library is aware of the rules engine, therefore allowing you to specify security for your custom group.
See more documentation in the book.