Altium part library management
There are a lot of ways to manage libraries in Altium. These include - at least! - integrated component libraries, database libraries and the vault.

The integrated component libraries are basically files on everyone's computer. You can do that sort of thing, and maybe manage it using a shared sync'd folder like Dropbox. Every part is its own separate entity, so if you want to change something on every part in your library, or a group of parts, it's really hard.

Altium's database libraries use a database backend like MySQL or Access or whatever you like to tie things together. There are regular database libraries and SVN database libraries. The latter sound fantastic in that the parts are all version controlled. It seems though that the local parts cache corrupts really easily and you have to delete it occasionally to fix problems. The regular database library can be used along with git or svn to add detailed information to each part. 

Only those people with access to write to the database can create or modify parts. So you could pretty easily have a base set of parts in a read-only shared directory, and each teacher could have their own database table linking those parts and adding whatever custom features they like.

For example, in my database, each part has a Mfr PN, a Supplier PN, and a link to the datasheet. As a result, Altium can display an image of the part and links directly to information about the part on Digikey or whatever, like the price or availability. By right-clicking on the part in Altium, I can easily access the datasheet, which is a really nice feature.

I don't know much about the vault. Altium wanted more money for us to have a private server version of it, and its early versions were clunky and not obvious how to use. It's probably better now.