접근 권한 permissions
“접근 권한”(Permissions)은 명시된 명령 특권의 내용 설명입니다.
[[permission]]identifier = "my-identifier"description = "This describes the impact and more."commands.allow = [ "read_file"]
[[scope.allow]]my-scope = "$HOME/*"
[[scope.deny]]my-scope = "$HOME/secret"
이를 통해 Tauri 애플리케이션의 프론트엔드에서 명령에 액세스할 수 있습니다. 또한 “적용 범위”(스코프)를 명령에 할당하여 어떤 명령이 활성화되는지 지정할 수 있습니다. “접근 권한”에서는 특정 명령을 활성화 또는 비활성화하거나, “적용 범위”를 정의하거나, 또는 그 둘을 조합할 수 있습니다.
“접근 권한”은 새로운 “식별자” 아래에 한 세트로 그룹화할 수 있습니다. 이는 “접근 권한 세트”라고 불리며, 이를 통해 “적용 범위” 관련 접근 권한을 “명령” 관련 접근 권한과 결합할 수 있습니다. 또한 “작업”별 접근 권한을 더 사용하기 쉬운 세트로 그룹화하거나 번들링할 수도 있습니다.
플러그인 개발자라면 공개된 모든 명령에 대해 여러 개의 정의되고 적절한 이름이 부여된 접근 권한을 배포할 수 있습니다.
애플리케이션 개발자의 경우, 기존 플러그인 접근 권한을 확장하거나 개인 설정 명령용으로 정의할 수 있습니다. 이는 나중에 재사용하거나 기본 설정 파일을 간소화하기 위해 한 세트로 그룹화하거나 확장할 수 있습니다.
“접근 권한 식별자”는 접근 권한을 재사용하고 고유한 이름을 갖도록 보장하는 데 사용됩니다.
<name>:default
: 이는 접근 권한이 플러그인 또는 애플리케이션의 기본값임을 나타냅니다.<name>:<command-name>
: 이는 접근 권한이 개별 명령용임을 나타냅니다.
플러그인의 접두사 tauri-plugin-
은 컴파일 시 플러그인 식별자의 맨 앞에 자동으로 추가되므로 수동으로 지정할 필요가 없습니다.
식별자는 ASCII 문자의 알파벳 소문자 [a-z]
로 제한되며, 식별자의 최대 길이(문자 수)는 아래 상수에 의해 현재 116
으로 제한됩니다.
const IDENTIFIER_SEPARATOR: u8 = b':';const PLUGIN_PREFIX: &str = "tauri-plugin-";
// https://doc.rust-lang.org/cargo/reference/manifest.html#the-name-fieldconst MAX_LEN_PREFIX: usize = 64 - PLUGIN_PREFIX.len();const MAX_LEN_BASE: usize = 64;const MAX_LEN_IDENTIFIER: usize = MAX_LEN_PREFIX + 1 + MAX_LEN_BASE;
Tauri 플러그인 디렉토리 구조의 간략화된 예:
tauri-plugin├── README.md├── src│ └── lib.rs├── build.rs├── Cargo.toml├── permissions│ └── <identifier>.json/toml│ └── default.json/toml
기본 접근 권한은 특별한 방법으로 처리됩니다. Tauri CLI를 사용하여 Tauri 애플리케이션에 플러그인을 추가하는 한, 애플리케이션 설정에 자동으로 추가되기 때문입니다.
애플리케이션 개발자의 경우도 구조는 유사합니다:
tauri-app├── index.html├── package.json├── src├── src-tauri│ ├── Cargo.toml│ ├── permissions│ └── <identifier>.toml| ├── capabilities│ └── <identifier>.json/.toml│ ├── src│ ├── tauri.conf.json
File System
플러그인의 “접근 권한” 설정 예:
[[permission]]identifier = "scope-home"description = """This scope permits access to all files andlist content of top level directories in the `$HOME`folder."""
[[scope.allow]]path = "$HOME/*"
《번역 주》 위 description의 내용: 이 적용 범위는
$HOME
폴더 내의 모든 파일과 목록 내용에 대한 액세스를 허용합니다.
[[permission]]identifier = "read-files"description = """This enables all file read relatedcommands without any pre-configured accessible paths."""commands.allow = [ "read_file", "read", "open", "read_text_file", "read_text_file_lines", "read_text_file_lines_next"]
《번역 주》 위 description의 내용: 이를 통해 사전 구성된 액세스 가능한 경로 없이 모든 파일 읽기 관련 명령이 활성화됩니다.
[[permission]]identifier = "allow-mkdir"description = "This enables the mkdir command."commands.allow = [ "mkdir"]
《번역 주》 위 description의 내용: 이를 통해 “mkdir” 명령이 활성화됩니다.
앱에서 위의 플러그인 접근 권한을 확장하는 구현 예:
[[set]]identifier = "allow-home-read-extended"description = """ This allows non-recursive read access to files and to create directoriesin the `$HOME` folder."""permissions = [ "fs:read-files", "fs:scope-home", "fs:allow-mkdir"]
《번역 주》 위 description의 내용: 이를 통해 파일에 대한 비재귀적 읽기 액세스가 가능해지고,
$HOME
폴더 내에 디렉토리를 만들 수 있게 됩니다.
© 2025 Tauri Contributors. CC-BY / MIT