As of Solr 4.8, cores can use config sets to share common configurations (i.e., "solrconfig.xml", "schema.xml", etc.) between multiple cores.
You want to change your directory structure to:
./
├─ solr.xml
├─ configsets/
| └─ template/
| └─ conf/
| ├─ schema.xml
| ├─ solrconfig.xml
| └─ ...
├─ core1/
| ├─ core.properties
| └─ data/
└─ core2/
├─ core.properties
└─ data/
This defines one config set named template. Everything that would go under the core's "conf/" directory should be under the config set's "conf/" directory.
Then, in each of your "core.properties" files, set configSet and omit schema and config:
# core.properties
name=...
configSet=template
Now your cores using the template config set will share "schema.xml", "solrconfig.xml", etc.
Unfortunately, the admin interface doesn't directly support assigning the configSet property. But if you use the CoreAdmin API, you can set configSet with the CREATE command. E.g.,
http://localhost:8983/solr/admin/cores?action=CREATE&name=coreX&configSet=template