Here’s what I do.
I have a snippet called {btn_edit} which contains the following
{if (group_id == '1' OR group_id == '6' OR group_id == '8' ) && logged_in}
<span class="edit_btn"><a href="http://{site_url}/SYSTEM/index.php?S=0&D=cp&C=content_publish&M=entry_form&channel_id={channel_id}&entry_id={entry_id}class=imgLink">_/images/btn_edit.png</a></span>{/if}
Just change SYSTEM to the name of your system folder.
Then put the {btn_edit} tag in a good spot on the page.
In the above example this edit button will only appear if you are a member of group 1, 6 or 8 and are logged in. My example uses a graphic but you can simplify to just a text link of course.
The link will take you into the CP to the entry form. This exposes all fields in that form of course.
Put the tag once for each channel entry chunk not for each element.
If you want to give access to just one field then you’ll have to go the SAEF route. I haven’t done that yet.
If you just have a block of text that’s not a channel entry then you could use a global variable instead of putting text directly in a template… which should be avoided.
hope this helps