add permissions recursively