To my knowledge, there is no setting to do such a thing. Setting a layer to "public" is the most permissive setting possible, and anyone, logged in or not, is able to see such layers.
Even if you could make an authenticated user's access somehow more restrictive than anonymous access, the user could just log out and see those public layers again.
If you have layers that you truly do not want certain other users to see, consider changing the sharing settings to something group-based.
Thank you for your explanation. The reason I want to make certain feature services public but not shown as an item is that I want to use them in my own public apps but I do not want others to use them in their apps. The reason is that I want the layers to display only in symbology that I defined to avoid miscommunication in maps. I know I can share layers as map images or tiles, but I want the public to have access to individual feature attributes, and the features should reflect my update in real time. Do you know the best strategy to set up a service for this purpose?
For now I hided the service by editing definition so that they are not shown in REST, neither in ArcGIS Pro server connection. This basically makes the service inaccessible without knowing the URL the public as far as I know. Now my concern is that it is showing in Portal's "My Organization" content tab in every user, regardless of the group setting.
A map image service can still provide data access via popups. If you'd like the layer to be a hosted feature layer, you can created a Hosted Map Image Layer, which functions like a Map Image (set symbology), but uses a Hosted Feature Layer as its source.
We have a situation in which the source layer is not public, but a defined style published as a Hosted Map Image is public.
Just note that a Hosted Map Image can not be overwritten, so changes to symbology will require deleting and republishing.
As with standard Map Image services, hosted ones can enable Data Access, which gives your users access to attributes and popups.
I just tried to publish a map image service with data access enabled, and I think it worked for me. Thank you for bringing up the symbology issue. I do expect to make symbology changes to the published map image, so I will make sure that I have the map saved in my local drive for re-publishing.