Run command as a player that is not online?

Is it possible to run a command as a Player that is currently offline?

Or

Is it possible to check permissions of a Player that is currently offline?

No, since a Player object would be the CommandSource but Player is online only.

Yes, User extends Subject and you can query for permissions on it.
You can obtain instances of User by using the UserStorageService