<!--
{
  "availability" : [
    "macOS: 10.3.0 - 10.10.0"
  ],
  "documentType" : "symbol",
  "framework" : "Security",
  "identifier" : "/documentation/Security/SecACLRemove(_:)",
  "metadataVersion" : "0.1.0",
  "role" : "Function",
  "symbol" : {
    "kind" : "Function",
    "modules" : [
      "Security"
    ],
    "preciseIdentifier" : "c:@F@SecACLRemove"
  },
  "title" : "SecACLRemove(_:)"
}
-->

# SecACLRemove(_:)

Removes the specified ACL entry from the access instance that contains it.

```
func SecACLRemove(_ aclRef: SecACL) -> OSStatus
```

## Parameters

`aclRef`

An ACL entry to remove.

## Return Value

A result code. See [Security Framework Result Codes](/documentation/Security/security-framework-result-codes).

## Discussion

This method fails if you attempt to remove the owner entry because an access instance must have exactly one such ACL at all times. If you need to change ownership settings, modify the existing owner entry rather than replacing it. In particular, use the [`SecAccessCopyMatchingACLList(_:_:)`](/documentation/Security/SecAccessCopyMatchingACLList(_:_:)) method with the [`kSecACLAuthorizationChangeACL`](/documentation/Security/kSecACLAuthorizationChangeACL) authorization to find the existing entry, and the [`SecACLSetContents(_:_:_:_:)`](/documentation/Security/SecACLSetContents(_:_:_:_:)) method to change it as needed.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)