According to your requirement, you have to define OWD of the object to `"Private"`. Then create `role hierarchy` or `public groups` to open up to access (either `Read-Only` or `Read-Write`) upon creating sharing rules to other users whom you want to share the records. There is a nice trailhead [Control Access to Records][1] which will help you to clear the doubts on record level sharing. [1]: https://trailhead.salesforce.com/en/data_security/data_security_records