Is [updating an entry] possible with just a twig template?
No. You'll need to write a plugin.
How can I [let users update an entry via an URL]
There's a few ways to approach this. My recommendation would be to have your plugin expose a site route pointing to a controller method. That controller method would then take care of updating the entry, and possibly redirect the user back to the entry URI.
Assuming you want to send your users links that look like
http://example.com/status/1234/live, here's what the route could look like:
'status/(?P<entryId>\d+)/(?P<status>[-\w]+)' => array( 'action' => 'myPlugin/status/updateStatus' )
With the above route, all matching URLs will be pointed to a
actionUpdateStatus() action method in a controller named
MyPlugin_StatusController. The controller would then need to handle the following:
How can I do this in a safe way?
The URLs should probably include some sort of unique key (either as another route variable, or as a query string variable) to verify the request. For example, you could opt to include a hash of the author's email address; the controller could then decrypt the hash before updating the entry, verifying that the given email address matches the one on file for the entry's author.
Additionally, you should probably verify that the
status route variable matches with a set of allowed statuses, such as "live", "pending" etc.