본문 바로가기
C.W.K.
Stream
Lesson 03 of 04 · published

위임은 깊이 하나야

~12 min · delegate, subagent, changeset

Level 0차가운 막대
0 XP0/41 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

자식은 스레드가 아니라 세션이야

delegate 는 자기 기록, 자기 다리, 부모의 도구 제한을 가진 자식을 시작해. 가시성이 권한이야. 자식의 도구는 requested ∩ parent-visible ∩ parent-authorized 이고, 부모 자신의 면과 정책에 대해 해석돼. 올리거나 숨긴 요청은 크게 거절되지, 조용히 박탈되지 않아. 자식에게 delegate 자체는 없고 거절되어서, 깊이 하나가 두 번 강제돼. 부모 역사는 상속되지 않아. 한계는 자식이 기록한 자기 캡이야.

교집합이 게이트가 되기 전에는, write를 거절한 부모도 자식에게 write를 주고 변경 집합을 적용할 수 있었어. 변경 집합을 적용하는 것은 부모가 쓰는 일이야. 부모 변이 권한은 적용 때 독립된 두 번째 게이트로 다시 검사돼. 부모에게 write 또는 edit 가 남아 있으면 적용돼. write:denybash:allow 만으로는 parent_not_authorized 가 안 떠. edit 이 허용이면 통과야. 배시를 든 자식이 write와 edit 거절을 돌아가지 않아. 배시는 둘 다 아니니까. 올리는 write 요청은 적용 전에 admit에서 거절돼.

깊이 하나, 두 번. 한 번은 자식이 delegate를 못 불러서. 다시 한 번은 적용이 부모이고, 부모는 여전히 자기 정책 아래라서.

스크래치, 그다음 형 있는 집합

쓰기 가능한 자식은 스크래치 사본에서 일하고 기대 옛 다이제스트가 붙은 형 있는 변경 집합을 돌려. 부모는 모든 이전 이미지를 검증하고, 새 몸을 모두 준비하고, 실패 시 롤백이 있는 트랜잭션 디렉터리로 적용해. 다이제스트 불일치는 변이 전에 거절해. 이건 프로세스 수준 전부 아니면 전무이지, POSIX가 여러 파일을 한 번에 공개한다고 주장하는 게 아니야. 프로세스 안 자식은 프로세스와 사용자를 공유해 — 샌드박스가 아니야.

Code

자식이 말로 지나갈 수 없는 두 게이트·text
admit child tools = requested ∩ parent-visible ∩ parent-authorized
refuse escalate / hide — do not strip
child.delegate     = absent and refused
apply change set   = parent writes; need write OR edit
write:deny + bash:allow + edit:allow  → apply still allowed
write:deny + edit:deny                → parent_not_authorized
bash ≠ write

External links

Exercise

write와 edit를 둘 다 거절하고 bash를 허용하는 부모 정책을 써. 그다음 적용을 통해 변이를 세탁하던 자식 요청을 써. 이제 그걸 막는 두 번째 게이트를 이름하고, edit가 남아 있으면 write:deny 더하기 bash:allow 만으로 부족한 이유를 써.
Hint
적용에는 edit만 있어도 돼. parent_not_authorized 는 부모가 write도 edit도 못 할 때만 떠. 올리는 write 요청은 admit에서 거절돼.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.