Rigidbody rotation

I am having a bit of trouble with my character controller (I am trying to script it on my own), namely I want to freeze rotations of rigidbody being effect of collision with terrain or other static objects, but I want to still be able to rotate it using user input.
The idea is: I wanted a third person cotroller based on FPS rigid body controller from wiki, but with ability to rotate the body with certain Input Axis (say "Rotational" axis, with buttons q and e). Ability to keep body's ability to react on applied forces, and real gravitation, possibility to change its mass and so on are too tempting to decline for me, thus I think modifications of third person controller will not satisfy me.
Is there any way to let me rotate body according to user input but remove the chaotic rotations due to collisions with terrain or other objects?

RigidBody has some checkboxes to "freeze" the position and rotation. It's kinda hidden, it was a headscratcher for me for a while too. Is this what you're looking for?

Actually no, I believe this bool changes the body's ability to rotate this is true, but it affects all kind of rotations, and I want to be able to rotate the body with user input.

Edit 1: Oh I am sorry, haven't read this: http://docs.unity3d.com/ScriptReference/Rigidbody-freezeRotation.html
It seems that this indeed stop the rotations coming from "physics simulation" so here comes my other question:
If I freeze the rotation (either in rigidbody component window or via script), how can I influence it by user input?

You can either directly set the transform's rotation or use the Transform.Rotate() method.

  transform.Rotate(Vector3.right * Time.deltaTime);

See more here: http://docs.unity3d.com/ScriptReference/Transform.Rotate.html

It works! Thank you kind Sir for quick and helpful response!
Have a nice day!