You say you don't want to use Wish because of the possibility of side-effects.
Per the spell description:
The DM has great latitude in ruling what occurs in such an instance; the greater the wish, the greater the likelihood that something goes wrong.
So if you, as DM, decide that this spell is the best approach, you get to decide how the effect happens.
Since you're trying to let them do something and just want to provide the players with a valid framework to achieve those results, I'd suggest this method works perfectly. "You want permanent Barkskin? That'll cost a Wish." Done and done.
For Barkskin, specifically, I would suggest going a less powerful route. Barkskin is a 2nd level spell. Rather than expend a 9th level Wish, have your caster write up a higher-level version of Barkskin as a custom (homebrew rules) spell. I would suggest this be no less than 5th level, and probably closer to 7th. Though again, Wish would certainly get you there. Maybe a 5th level version that lasts 1 day and doesn't require concentration, "Greater Barkskin." Then a 7th level homebrew spell that's "Permanent Barkskin." Those homebrew spells could be modeled after various existing spells that have more powerful versions at higher levels. Though again, Wish would certainly get you there.