"permission은 이름 붙은 권한 하나야. 그 이름 읽는 법만 익히면 시스템 전체가 안 신비로워져."
permission identifier 읽는 법
permission은 구조가 뻔한 문자열이야. <출처>:<이름> 꼴이지. 출처는 core(Tauri 내장)거나 플러그인 이름(fs, dialog, shell, store…)이고. 이름은 default처럼 잘 골라 묶어둔 세트거나 allow-read-text-file처럼 딱 하나만 여는 세밀한 권한이야. 그러니까 core:default는 '기본으로 안전한 core API', fs:allow-read-text-file은 딱 '텍스트 파일 읽기', shell:allow-execute는 '프로세스 실행'인 거지. 이름을 읽을 줄 알면 정확하게 허락할 수 있어.
기본 세트냐, 세밀한 권한이냐
플러그인은 대개 흔히 쓰이고 적당히 안전한 command를 묶은 default permission을 내놔 — 출발점으로 합리적이지. default가 필요 이상으로 열어주는 것 같으면 개별 allow- permission으로 내려가서 네 앱이 실제로 부르는 command만 적어. 세밀하게 가면 타이핑은 늘고 공격면은 확 줄어. 힘센 것들(파일시스템, 셸)엔 편한 default보다 세밀한 목록을 골라.
Allow랑 Deny
permission엔 allow- 형태랑 deny- 형태가 있고, deny가 이겨. 넓은 세트를 허락해놓고 그 안의 위험한 구석만 콕 집어 막을 수 있다는 뜻이야 — 안전장치를 두 겹으로 거는 거지. 허락은 해놨는데 command가 영문 모르게 거부당하면, deny permission(이나 scope)이 네 allow를 덮고 있는지 확인해. 이 우선순위는 일부러 그렇게 만든 거야. deny가 허락에서 예외를 파내는 방법이거든.