1. In order to be able and assign a Landing Dashboard to a User type, you first need to give them Read/Write access to all Modules/Versions/Actions posted on that specific dashboard. After that, you will be able to assign a Landing Dashboard.
The Restrictions can be set at a list level by ticking the box "Selective Access"
2. Yes, once you give them access, you will be able to assign a Landing Dashboard.
3. It depends on what type of access you give to each user. anirudh gave a full list of security details that you can tweak to your own needs.
I hope this helps! If you any questions feel to reply to this message or send me a message.