본문으로 건너뛰기

Command-line Tools

Casbin CLIs는 Casbin API를 명령줄에서 노출하여 모델과 정책을 로드하고, enforce 검사를 수행하며, 셸에서 정책을 관리할 수 있게 합니다. Go, Java, Node.js, Python, .NET 및 Rust용 구현체가 제공됩니다.

설치​

Go (casbin-go-cli)​

  1. 저장소를 클론하세요:

    git clone https://github.com/apache/casbin-go-cli.git
  2. CLI를 빌드하세요:

    cd casbin-go-cli
    go build -o casbin

Rust (casbin-rust-cli)​

crates.io에서 설치​

cargo install casbin-rust-cli

소스 코드에서 빌드​

  1. 저장소를 클론합니다:

    git clone https://github.com/casbin-rs/casbin-rust-cli.git
  2. 릴리스 최적화를 사용하여 빌드합니다:

    cd casbin-rust-cli
    cargo build --release

Java (casbin-java-cli)​

  1. 저장소를 클론합니다:

    git clone https://github.com/jcasbin/casbin-java-cli.git
  2. Maven을 사용하여 빌드합니다 (JAR 파일은 target 디렉터리에 생성됩니다):

    cd casbin-java-cli
    mvn clean install

Python (casbin-python-cli)​

  1. 저장소를 클론합니다:

    git clone https://github.com/apache/casbin-python-cli.git
  2. 필요한 의존성을 설치합니다:

    cd casbin-python-cli
    pip install -r requirements.txt
  3. CLI를 실행합니다:

    python -m casbin_cli.client [command] [options] [args]

.NET (casbin-dotnet-cli)​

  1. 저장소를 클론합니다:

    git clone https://github.com/casbin-net/casbin-dotnet-cli.git
  2. 프로젝트를 빌드합니다:

    cd casbin-dotnet-cli
    dotnet build

사용법​

옵션​

옵션설명필수 여부참고 사항
-m, --modelModel 파일 경로 또는 모델 정의 텍스트예따옴표로 감싸고 줄 구분자로 | 사용
-p, --policyPolicy 파일 경로 또는 정책 정의 텍스트예따옴표로 감싸고 줄 구분자로 | 사용
-e, --enforce접근 권한 평가아니오인수를 따옴표로 감쌈
-ex, --enforceEx권한을 평가하고 일치하는 정책을 표시아니오인수를 따옴표로 감쌈
-AF, --addFuntion사용자 지정 함수 등록 (casbin-java-cli 전용)아니오따옴표로 감싸고 줄 구분자로 | 사용
-ap, --addPolicy정책 파일에 정책 규칙 추가 (casbin-java-cli 전용)아니오인수를 따옴표로 감쌈
-rp, --removePolicy정책 파일에서 정책 규칙 삭제 (casbin-java-cli 전용)아니오인수를 따옴표로 감쌈

시작하기​

  • Alice가 data1을 읽을 수 있는지 확인합니다:

    ./casbin enforce -m "examples/rbac_model.conf" -p "examples/rbac_policy.csv" "alice" "data1" "read"

    {"allow":true,"explain":null}

    ./casbin enforce -m "[request_definition]\nr = sub, obj, act\n[policy_definition]\np = sub, obj, act\n[role_definition]\ng = _, _\n[policy_effect]\ne = some(where (p.eft == allow))\n[matchers]\nm = g(r.sub, p.sub) && r.obj == p.obj && r.act == p.act" -p "p, alice, data1, read\np, bob, data2, write\np, data2_admin, data2, read\np, data2_admin, data2, write\ng, alice, data2_admin" "alice" "data1" "read"

    {"allow":true,"explain":null}

  • Alice가 data2에 쓸 수 있는지 확인하고 권한을 부여하는 정책을 표시합니다:

    ./casbin enforceEx -m "examples/rbac_model.conf" -p "examples/rbac_policy.csv" "alice" "data2" "write"

    {"allow":true,"explain":["data2_admin","data2","write"]}

  • 정책 파일에 새 정책 규칙 추가 (casbin-java-cli 전용):

    ./casbin addPolicy -m "examples/rbac_model.conf" -p "examples/rbac_policy.csv" "alice" "data2" "write"

    {"allow":true,"explain":null}

  • 정책 파일에서 정책 규칙 제거 (casbin-java-cli 전용):

    ./casbin removePolicy -m "examples/rbac_model.conf" -p "examples/rbac_policy.csv" "alice" "data2" "write"

    {"allow":true,"explain":null}

Comments are powered by giscus and GitHub Discussions. They load from giscus.app and GitHub only after you click the button below.