How to grey out fields with non editable permission upon node editing?
Form elements have a disabled property you can set as a boolean. For example:

$form['test'] = array(
  '#type' =&gt; 'text',
  '#title' =&gt; t('Test'),
  '#required' =&gt; FALSE,
  '#default_value' =&gt; 0,
  '#disabled' =&gt; TRUE,
);


Now, you can use hook_form_alter() to check that you're on the right form ($form_id), and any other conditions you require, like for instance checking user permissions, with the user_access() function.