Users can be a real pain. I don't mean the people, though doubtless that's sometimes true. But keeping UNIX user accounts and file permissions in sync across a network of machines, some of them running different operating systems, can be very challenging without some kind of centralized configuration management.
Each new developer who joins the organization needs an account on every machine, along with sudo privileges and group memberships, and needs his/her SSH key authorized for a bunch of different accounts. The system administrator who has to take care of this manually will be at the job all day, while the system administrator who uses Puppet will be done in minutes, and can head out for an early lunch.
In this chapter, we'll look at some handy patterns and techniques to manage users and their associated resources. Users are also one of the most...