Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Ctors](https://developer.android.com/reference/java/nio/file/LinkPermission#pubctors) \| [Inherited Methods](https://developer.android.com/reference/java/nio/file/LinkPermission#inhmethods)

# LinkPermission


`
public

final

class
LinkPermission
`


`


`

`


`

`

extends https://developer.android.com/reference/java/security/BasicPermission


`

`


`

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||||
| ↳ | [java.security.Permission](https://developer.android.com/reference/java/security/Permission) |||
|   | ↳ | [java.security.BasicPermission](https://developer.android.com/reference/java/security/BasicPermission) ||
|   |   | ↳ | java.nio.file.LinkPermission |

<br />

*** ** * ** ***

The `Permission` class for link creation operations.

The following table provides a summary description of what the permission
allows, and discusses the risks of granting code the permission.

| Permission Target Name | What the Permission Allows | Risks of Allowing this Permission |
| hard | Ability to add an existing file to a directory. This is sometimes known as creating a link, or hard link. | Extreme care should be taken when granting this permission. It allows linking to any file or directory in the file system thus allowing the attacker access to all files. |
| symbolic | Ability to create symbolic links. | Extreme care should be taken when granting this permission. It allows linking to any file or directory in the file system thus allowing the attacker to access to all files. |
|---|---|---|
[Table shows permission target name, what the permission allows, and associated risks]

<br />

**See also:**

- `https://developer.android.com/reference/java/nio/file/Files#createLink(java.nio.file.Path,%20java.nio.file.Path)`
- `https://developer.android.com/reference/java/nio/file/Files#createSymbolicLink(java.nio.file.Path,%20java.nio.file.Path,%20java.nio.file.attribute.FileAttribute<?>[])`

## Summary

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/java/nio/file/LinkPermission#LinkPermission(java.lang.String)(https://developer.android.com/reference/java/lang/String name) ` Constructs a `LinkPermission` with the specified name. |
| ` https://developer.android.com/reference/java/nio/file/LinkPermission#LinkPermission(java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String name, https://developer.android.com/reference/java/lang/String actions) ` Constructs a `LinkPermission` with the specified name. |

| ### Inherited methods |
|---|---|
| From class ` https://developer.android.com/reference/java/security/BasicPermission ` |---|---| | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/security/BasicPermission#getActions()() ` | | ` boolean` | ` https://developer.android.com/reference/java/security/BasicPermission#implies(java.security.Permission)(https://developer.android.com/reference/java/security/Permission p) ` | ||
| From class ` https://developer.android.com/reference/java/security/Permission ` |---|---| | ` void` | ` https://developer.android.com/reference/java/security/Permission#checkGuard(java.lang.Object)(https://developer.android.com/reference/java/lang/Object object) ` Determines whether or not to allow access to the guarded object `object`. | | ` abstract https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/security/Permission#getActions()() ` | | ` final https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/security/Permission#getName()() ` | | ` abstract boolean` | ` https://developer.android.com/reference/java/security/Permission#implies(java.security.Permission)(https://developer.android.com/reference/java/security/Permission permission) ` | | ` https://developer.android.com/reference/java/security/PermissionCollection` | ` https://developer.android.com/reference/java/security/Permission#newPermissionCollection()() ` | ||
| From class ` https://developer.android.com/reference/java/lang/Object ` |---|---| | ` https://developer.android.com/reference/java/lang/Object` | ` https://developer.android.com/reference/java/lang/Object#clone()() ` Creates and returns a copy of this object. | | ` boolean` | ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. | | ` void` | ` https://developer.android.com/reference/java/lang/Object#finalize()() ` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object. | | ` final https://developer.android.com/reference/java/lang/Class<?>` | ` https://developer.android.com/reference/java/lang/Object#getClass()() ` Returns the runtime class of this `Object`. | | ` int` | ` https://developer.android.com/reference/java/lang/Object#hashCode()() ` Returns a hash code value for the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notify()() ` Wakes up a single thread that is waiting on this object's monitor. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#notifyAll()() ` Wakes up all threads that are waiting on this object's monitor. | | ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/lang/Object#toString()() ` Returns a string representation of the object. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed. | | ` final void` | ` https://developer.android.com/reference/java/lang/Object#wait()() ` Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*. | ||
| From interface ` https://developer.android.com/reference/java/security/Guard ` |---|---| | ` abstract void` | ` https://developer.android.com/reference/java/security/Guard#checkGuard(java.lang.Object)(https://developer.android.com/reference/java/lang/Object object) ` Determines whether or not to allow access to the guarded object `object`. | ||

## Public constructors

### LinkPermission

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public LinkPermission (String name)
```

Constructs a `LinkPermission` with the specified name.

<br />

| Parameters ||
|---|---|
| `name` | `String`: the name of the permission. It must be "hard" or "symbolic". <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if name is empty or invalid |

### LinkPermission

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public LinkPermission (String name, 
                String actions)
```

Constructs a `LinkPermission` with the specified name.

<br />

| Parameters ||
|---|---|
| `name` | `String`: the name of the permission; must be "hard" or "symbolic". <br /> |
| `actions` | `String`: the actions for the permission; must be the empty string or `null` <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if name is empty or invalid, or actions is a non-empty string |