Java Desktop System Configuration Manager 릴리스 1.1 관리 설명서

CLI로 작업

CLI 명령 실행

CLI는 한 번에 하나씩 명령을 실행하는 단일 라인 명령 모드에서 작동하는 pgtool 명령으로 구성됩니다. pgtool에는 명령 요약에서 설명하는 여러 가지 하위 명령과 옵션, 피연산자가 포함되어 있습니다. 옵션은 전체 키워드 또는 짧은 키워드를 사용하여 지정할 수 있습니다. 다음 명령 설명에서는 전체 키워드가 사용되었지만, 표 3–2에서 각 명령에 해당하는 짧은 키워드를 참조할 수 있습니다.

CLI에 필요한 부트스트랩 정보

엔티티 및 정책 그룹이 저장된 데이터베이스를 찾고 조회하려면 부트스트랩 정보가 있어야 합니다. 필요한 부트스트랩 정보는 서버, 포트 번호, 기본 고유 이름(DN) 및 유형입니다. 이 정보는 명령줄에서 지정하거나 부트스트랩 파일에서 액세스할 수 있습니다.

부트스트랩 정보 액세스

부트스트랩 파일의 위치는 명령줄에서 지정할 수 있습니다. 그 외의 경우에는 CLI와 함께 설치된 부트스트랩 파일이 사용됩니다. 이 파일은 키 이름만 함께 설치된 것이므로, 적합한 부트스트랩 값을 제공하려면 관리자가 편집해야 합니다.

또한, CLI를 사용하면 명령줄에서 부트스트랩 정보를 지정할 수도 있습니다. 부트스트랩 세부 사항의 지정에 사용되는 옵션은 다음과 같습니다.

사용자 이름 및 암호를 사용한 인증

명령을 실행할 때마다 사용자 이름 및 암호가 필요합니다.

명령 실행

명령을 사용할 때마다 policymgr API에 대한 연결이 만들어져서 초기화된 다음, 명령이 실행된 후 종료됩니다. 명령이 errir와 함께 종료되면 구성 정책에 변경 사항이 적용되지 않습니다.

엔티티 표시

엔티티는 LDAP DN(예: uid=jmonroe,ou=People,o=apoc)을 사용하여 표시합니다.

CLI 명령

이 절에서는 Configuration Manager CLI 기능에 대해 설명합니다.

CLI 도움말 액세스

사용 가능한 모든 CLI 명령의 목록을 보려면 pgtool --help를 입력합니다.

CLI 버전 정보 액세스

버전 정보를 표시하려면 pgtool --version을 입력합니다.

추가

정책 그룹 리포지토리의 정책 그룹을 엔티티에 지정합니다.

구문

add [--username=<name>] [--scope=<user/host>] <name> <entity>

--username=<name> : 구성 리포지토리에 사용되는 형식에서 관리자의 사용자 이름(예: "jmonroe")입니다.

--scope=<user/host> : 정책 그룹의 범위(사용자 또는 호스트)를 지정합니다. 지정하지 않으면 사용자 범위가 기본값으로 사용됩니다.

<name> : 엔티티에 지정할 정책 그룹의 이름을 지정합니다.

<entity> : 엔티티 이름은 저장소 백엔드가 사용하는 형식으로 지정됩니다. 예를 들어, LDAP 백엔드를 사용할 경우 고유 이름을 사용하여 엔티티를 지정합니다.


예 3–1 엔티티에 정책 그룹 추가

% pgtool add --username=jmonroe UserPolicyGroup1 cn Role1,o=staff,o=apoc

사용자 “jmonroe”가 정책 그룹 “UserPolicyGroup1”을 엔티티 “cn=Role1,o=staff,o=apoc”에 지정했습니다.


작성

create 명령은 빈 정책 그룹을 새로 만듭니다.

구문

create [--username=<name>] [--name=<policy group name>] [--scope=<user/host>] [--entity=<entity name>] [--priority=<priority integer>]

--username=<name> : 구성 리포지토리에 사용되는 형식에서 관리자의 사용자 이름(예: "jmonroe")입니다.

--name=<policy group name> : 정책 그룹의 이름을 지정합니다. 이 이름과 이 범위의 정책 그룹이 이 수준에 이미 존재하면 해당 명령은 오류와 함께 종료됩니다. 엔티티 정책 그룹에 제한된 기본 이름이 있기 때문에 이 옵션은 --entity 옵션과 함께 사용하지 못할 수 있습니다.

--scope=<user/host> : 정책 그룹의 범위(사용자 또는 호스트)를 지정합니다. 지정하지 않으면 사용자 범위가 기본값으로 사용됩니다.

--entity=<entity name> : 정책 그룹이 작성되는 엔티티입니다. 이 옵션을 지정하지 않으면 정책 그룹은 정책 그룹 리포지토리의 일부가 됩니다. 엔티티 정책 그룹에 제한된 기본 이름이 있기 때문에 이 옵션은 -name 옵션과 함께 사용하지 못할 수 있습니다.

--priority=<priority integer> : 정책 그룹의 우선 순위를 지정하는 정수(>=1)입니다. 엔티티 정책 그룹에 변경될 수 있는 기본 우선 순위가 있기 때문에 이 옵션은 --entity 옵션과 함께 사용하지 못할 수 있습니다. 지정된 우선 순위가 이 레이어에서 이 범위의 기존 정책 그룹과 같은 경우 해당 명령은 오류와 함께 종료됩니다. 우선 순위를 지정하지 않으면 1이 지정됩니다.


예 3–2 새 정책 그룹 만들기

% pgtool create --username=jmonroe --scope=host --name=NewHostGroup1

범위가 “host”인 “NewHostGroup1”이라는 새 정책 그룹을 만듭니다.


삭제

정책 그룹을 삭제합니다.

구문

delete [--username=<name>] [--name=<policy group name>] [--scope=<user/host>] [--entity=<entity name>]

--username=<name> : 구성 리포지토리에 사용되는 형식에서 관리자의 사용자 이름(예: "jmonroe")입니다.

--name=<policy group name> : 삭제할 정책 그룹의 이름을 지정합니다. 엔티티 정책 그룹에 제한된 기본 이름이 있기 때문에 이 옵션은 --entity 옵션과 함께 사용되지 않습니다. 정책 그룹이 없거나 고유하게 식별할 수 없는 경우 해당 명령은 오류와 함께 종료됩니다.

--scope=<user/host> : 정책 그룹의 범위(사용자 또는 호스트)를 지정합니다. 지정하지 않으면 사용자 범위가 기본값으로 사용됩니다.

--entity=<entity name> : 정책 그룹이 저장되어 있는 엔티티입니다. 이 옵션을 지정하지 않으면 정책 그룹은 정책 그룹 리포지토리의 일부입니다. 엔티티 정책 그룹에 제한된 기본 이름이 있기 때문에 이 옵션은 --name 옵션과 함께 사용되지 않습니다.


예 3–3 정책 그룹 삭제

% pgtool delete --username=jmonroe --scope=host --name=renamedNewHostGroup1

“renamedNewHostGroup1” 정책 그룹을 삭제합니다.


내보내기

정책 그룹을 ZIP 파일 형식으로 지정된 대상으로 내보냅니다. 정책 그룹은 정책 그룹 리포지토리의 그룹이거나 엔티티 정책 그룹일 수 있습니다.

구문

export [--username=<name>] [--name=<policy group name>] [--scope=<user/host>] [--entity=<entity name>] <target>

--username=<name> : 구성 리포지토리에 사용되는 형식에서 관리자의 사용자 이름(예: "jmonroe")입니다.

--name=<policy group name> : 정책 그룹의 이름을 지정합니다. 엔티티 정책 그룹에 제한된 기본 이름이 있기 때문에 이 옵션은 --entity 옵션과 함께 사용되지 않습니다. 정책 그룹 리포지토리에 이름이 같은 두 개의 정책 그룹(하나는 사용자 범위, 다른 하나는 호스트 범위)이 있을 수 있습니다. 범위를 지정하지 않으면 사용자 범위가 기본값으로 사용됩니다.

--scope=<user/host> : 정책 그룹의 범위를 지정합니다. 사용자 또는 호스트 중 하나입니다. 범위를 지정하지 않으면 기본값이 사용자가 됩니다.

--entity=<entity name> : 정책 그룹이 저장된 엔티티입니다. 엔티티 정책 그룹에 제한된 기본 이름이 있기 때문에 이 옵션은 --name 옵션과 함께 사용하지 못할 수 있습니다. 이 옵션을 지정하지 않으면 정책 그룹은 정책 그룹 리포지토리의 일부가 됩니다. 엔티티 이름은 저장소 백엔드가 사용하는 형식으로 지정됩니다. 예를 들어, LDAP 백엔드를 사용할 경우 고유 이름을 사용하여 엔티티를 지정합니다.

<target> : ZIP 파일이 저장될 경로 및 파일 이름입니다. 파일 이름을 지정하지 않으면 /tmp/<policy group name>.zip이 기본값으로 사용됩니다. 대상이 쓰기 가능한 상태가 아니면 해당 명령은 오류와 함께 종료됩니다.


예 3–4 정책 그룹 내보내기

% pgtool export --scope=host --name=HostPolicyGroup1 --username=jmonroe /tmp/newdir

“HostPolicyGroup1”을 새 디렉토리 /tmp/newdir에 작성된 HostPolicyGroup1.zip으로 내보냅니다.


가져오기

지정된 소스에서 ZIP 파일 형식으로 저장된 정책 그룹을 가져옵니다. 정책 그룹을 정책 그룹 리포지토리 또는 엔티티로 가져올 수 있습니다.

구문

import [--username=<name>] [--name=<policy group name>] [--scope=<user/host>] [--entity=<entity name>] [--priority=<priority integer>] <source>

--username=<name> : 구성 리포지토리에 사용되는 형식에서 관리자의 사용자 이름(예: "jmonroe")입니다.

--name=<policy group name> : 정책 그룹의 이름을 지정합니다. 엔티티 정책 그룹에 제한된 기본 이름이 있기 때문에 이 옵션은 --entity 옵션과 함께 사용되지 않습니다. 범위와 이름이 같은 두 개의 정책 그룹이 같은 위치에 있을 수 없습니다. 정책 그룹 이름을 지정하지 않으면 .zip 파일의 이름이 기본값으로 사용됩니다. 이 이름과 범위의 정책 그룹이 이미 정책 그룹 리포지토리에 있으면 덮어쓰게 됩니다.

--scope=<user/host> : 정책 그룹의 범위를 지정합니다. 사용자 또는 호스트 중 하나입니다. 범위를 지정하지 않으면 사용자가 기본값으로 사용됩니다.

--entity=<entity name> : 정책 그룹이 저장된 엔티티입니다. 이 옵션을 지정하지 않으면 정책 그룹은 정책 그룹 리포지토리의 일부가 됩니다. 엔티티 정책 그룹에 제한된 기본 이름이 있기 때문에 이 옵션은 -name 옵션과 함께 사용하지 못할 수 있습니다. 엔티티 이름은 저장소 백엔드가 사용하는 형식으로 지정됩니다. 예를 들어, LDAP 백엔드를 사용할 경우 고유 이름을 사용하여 엔티티를 지정합니다.

--priority=<priority integer> : 정책 그룹 리포지토리에 있는 정책 그룹의 우선 순위를 지정하는 정수(>=1)입니다. 엔티티 정책 그룹에 변경될 수 있는 기본 우선 순위가 있기 때문에 이 옵션은 --entity 옵션과 함께 사용하지 못할 수 있습니다. 지정된 우선 순위가 이 리포지토리에서 이 범위의 기존 정책 그룹과 같은 경우 해당 명령은 오류와 함께 종료됩니다. 우선 순위를 지정하지 않으면 1이 할당됩니다.

<source> : ZIP 파일이 저장될 경로 및 파일 이름입니다.


예 3–5 정책 그룹 가져오기

% pgtool import --scope=host --name=NewHostPolicyGroup1 --username=jmonroe --priority=7 /tmp/HostPolicyGroup1.zip

이름 “NewHostPolicyGroup1”, 범위 “host”, 우선 순위 “7”의 정책 그룹을 HostPolicyGroup1.zip에서 가져옵니다.


목록

옵션을 지정하지 않으면 정책 그룹 리포지토리의 모든 정책 그룹이 나열됩니다. 두 개의 저장소 백엔드를 지정하면 사용자 백엔드 저장소의 정책 그룹 리포지토리에 있는 모든 정책 그룹이 나열됩니다. 지정된 옵션에 따라 list는 엔티티에 지정된 모든 정책 그룹 또는 특정 정책 그룹을 사용하는 엔티티를 나열할 수도 있습니다. 정책 그룹이 나열되면 해당되는 경우에 따라 이름, 범위, 우선 순위 및 엔티티 같은 세부 사항도 함께 나열됩니다. 엔티티는 고유 이름별로 나열됩니다.

구문

list [--username=<name>] [--scope=<user/host>] [--entity=<entity name>][--name =<policy group name>]

--username=<name> : 구성 리포지토리에 사용되는 형식에서 관리자의 사용자 이름(예: "jmonroe")입니다.

--scope=<user/host> : 이 옵션만 지정하면 정책 그룹 리포지토리에서 지정된 범위의 모든 정책 그룹이 나열됩니다. 지정하지 않으면 사용자 범위가 기본값으로 사용됩니다. -entity 옵션과 함께 사용하면 엔티티에 지정된 이 범위의 모든 정책 그룹이 나열됩니다. -name 옵션과 함께 사용하면 지정된 범위의 지정된 정책 그룹을 사용하는 모든 엔티티가 나열됩니다.

--entity=<entity name> : 엔티티에 지정된 정책 그룹을 나열합니다.

--name=<policy group name> : 지정된 정책 그룹을 사용하는 엔티티를 나열합니다.


예 3–6 리포지토리의 정책 그룹 나열

% pgtool list --username=jmonroe

관리자 “jmonroe”에 대한 글로벌 정책 그룹을 나열합니다.

% pgtool list --username=jmonroe --name=UserPolicyGroup1

정책 그룹 “UserPolicyGroup1”을 사용하여 엔티티를 나열합니다.


로그 인

데이터 저장소 백엔드의 사용자 이름과 암호를 관리자의 홈 디렉토리에 있는 파일에 저장합니다. 나중에 이 사용자 이름과 암호를 사용하여 pgtool을 호출할 수 있습니다.

자격 증명은 관리자 홈 디렉토리의 .apocpass라는 이름의 파일에 저장됩니다. 이 파일이 이미 있고 정확한 사용 권한을 갖고 있지 않으면 해당 명령은 오류와 함께 종료됩니다. 사용자 이름을 입력하면 관리자에게 암호를 묻는 메시지가 표시되고 그렇지 않으면 사용자 이름과 암호를 묻는 메시지가 표시됩니다. 사용자 이름과 암호는 데이터베이스에 대한 익명 액세스를 사용하여 인증됩니다. 익명 액세스가 지원되지 않으면 인증된 사용자 이름과 암호를 입력하라는 메시지가 나타납니다. 인증된 사용자 이름을 통한 인증이 실패하면 해당 명령은 오류와 함께 종료됩니다. 인증이 끝나면 사용자/암호 쌍은 관리자의 .apocpass 파일에 저장됩니다. 암호는 호스트/포트/기본 부트스트랩 정보와 사용자 이름의 조합으로 구성된 키를 사용하여 저장됩니다. 부트스트랩 파일은 옵션 인수로 지정될 수 있으며 그렇지 않은 경우에는 위의 다른 옵션을 사용하여 부트스트랩 정보를 지정할 수 있습니다. 두 방법 중 어느 것도 사용하지 않을 때는 pgtool과 함께 설치된 기본 부트스트랩 파일에서 부트스트랩 정보를 가져옵니다. 부트스트랩 정보를 사용할 수 없거나 자격 증명 파일을 만들 수 없으면 해당 명령은 오류와 함께 종료됩니다. 자격 증명 파일이 성공적으로 생성되면 이 저장소 백엔드를 사용하여 이후의 pgtool 명령에 대한 사용자 이름과 암호를 지정할 필요가 없습니다. 즉, 자격 증명 파일에 저장된 사용자 이름 및 암호 세부 사항이 사용됩니다.

구문

login [--username=<name>] [--file=<bootsrap file>] [--hostname=<hostname>] [--port=<portnumber>] [--base=<base name>] [--type=<type of back end>]

--username=<name> : 구성 리포지토리에 사용되는 형식에서 관리자의 사용자 이름(예: "jmonroe")입니다.

--file=<bootstrap file> : 부트스트랩 파일의 정규화된 경로입니다.

--hostname=<hostname> : 필요한 저장소 백엔드에 대한 호스트 이름입니다. 이는 부트스트랩 파일이 제공하는 해당 정보 대신 사용됩니다.

--port=<port number> : 이 저장소 백엔드가 사용하는 포트 번호입니다.

--base=<base name> : 이 저장소 백엔드의 기본 이름입니다. 예를 들어, LDAP 백엔드의 경우 baseDN입니다.

--type=<type of back end> : 기본값은 LDAP입니다.


예 3–7 로그인

% pgtool login --username=jmonroe [Enter the correct password when prompted]

“jmonroe” 및 “암호”에 대한 항목이 있는 ~/.apocpass라는 파일이 생성되며 파일 사용 권한은 600입니다.


수정

정책 그룹 리포지토리에 있는 정책 그룹의 우선 순위를 변경합니다.

구문

modify [--username=<name>] [--scope=<user/host>] <name> <priority>

--username=<name> : 구성 리포지토리에 사용되는 형식에서 관리자의 사용자 이름(예: "jmonroe")입니다.

--scope=<user/host> : 정책 그룹의 범위(사용자 또는 호스트)를 지정합니다. 지정하지 않으면 사용자 범위가 기본값으로 사용됩니다.

<name> : 정책 그룹의 이름을 지정합니다.

<priority> : 정책 그룹의 우선 순위를 지정하는 정수(>=1)입니다. 지정된 우선 순위가 정책 그룹 리포지토리에서 이 범위의 기존 정책 그룹과 같은 경우 명령이 실패합니다.


예 3–8 정책 그룹의 우선 순위 변경

% pgtool modify --username=jmonroe UserPolicyGroup1 15

“UserPolicyGroup1”의 우선 순위를 15로 변경합니다.


제거

엔티티에서 정책 그룹을 제거합니다.

구문

remove [--username=<name>] [--scope=<user/host>] <name> <entity>

--username=<name> : 구성 리포지토리에 사용되는 형식에서 관리자의 사용자 이름(예: "jmonroe")입니다.

--scope=<user/host> : 정책 그룹의 범위(사용자 또는 호스트)를 지정합니다. 지정하지 않으면 사용자가 기본값으로 사용됩니다.

<name> : 엔티티에 연관된 정책 그룹 리포지토리의 정책 그룹 이름을 지정합니다.

<entity>: 이 엔티티의 이름입니다.


예 3–9 엔티티에서 정책 그룹 제거

% pgtool remove --username=jmonroe UserPolicyGroup1 cn=Role1,o=staff,o=apoc

사용자 “jmonroe”가 엔티티 “cn=Role1,o=staff,o=apoc”에서 정책 그룹 “UserPolicyGroup1”을 제거합니다.


이름 바꾸기

정책 그룹 리포지토리에 있는 정책 그룹의 이름을 변경합니다.

구문

rename [--username=<name>] [--scope=<user/host>] <name> <newname>

--username=<name> : 구성 리포지토리에 사용되는 형식에서 관리자의 사용자 이름(예: "jmonroe")입니다.

--scope=<user/host> : 기존 정책 그룹의 범위(사용자 또는 호스트)를 지정합니다. 지정하지 않으면 사용자 범위가 기본값으로 사용됩니다.

<name> : 정책 그룹 리포지토리에 있는 정책 그룹의 현재 이름을 지정합니다.

<newname> : 정책 그룹의 새 이름입니다. 이 이름과 범위의 정책 그룹이 정책 그룹 리포지토리에 이미 있으면 해당 명령은 오류와 함께 종료됩니다.


예 3–10 정책 그룹 이름 바꾸기

% pgtool rename --username=jmonroe NewUserGroup2 renamedNewUserGroup2

“NewUserGroup2”의 이름을 “renamedNewUserGroup2”로 변경합니다.