How to restrict editing some node properties (like title / URL) for some users (roles)?
If you want finer control over any field then you can implement hook_field_access($op, $field, $entity_type, $entity, $account) and provide/deny access.

Determine whether the user has access to a given field.
This hook is invoked from field_access() to let modules block access to operations on fields. If no module returns FALSE, the operation is allowed.