Thanks Quenio,
I think this makes a public COPY of a notebook, but does not change the original notebook permissions. Just like “Publish” from the UIs does.
For me it’s a bit strange that a files attributes cannot be changed. But I can live with that copies.
You can get a handle to the current cloud notebook using $EvaluationCloudObject. It works inside a cloud notebook (every cloud notebook is a cloud object), but also e.g. inside an APIFunction.
In addition to SetOptions (which you can use to change Permissions as a whole), there is SetPermissions for more granular permission changes (allowing you to change the permissions of individual user groups without affecting others). Plus, SetPermissions even defaults to the current document, so changing its permissions to public (in WL) is as simple as:
SetPermissions["Public"]
In the cloud GUI, you could click “Share” in the menu and then “Make it public”. Admittedly, that’s a bit hidden.