If I cannot change it, I make a copy: it is not
shared anymore.
If your changes may jeopardize my usage, I keep a copy: same result
Overcoming the apparently mutually exclusive requirements of keeping the resources in the same time closed for use and open for change, can be achieved by playing with parts and whole.
Note that it is important to preserve referential transparency, i.e. to avoid invalidating user references to the resources (names, links, config specs), or forcing the users to update their references.